added STIX_EPFULL

fixed a bug in starting an initial process
started writing an integer-to-string conversion function
This commit is contained in:
hyunghwan.chung
2015-12-02 15:24:13 +00:00
parent 283c3652db
commit 2fbb4d3a71
10 changed files with 333 additions and 138 deletions

View File

@ -217,7 +217,6 @@ stix_oop_t stix_instantiate (stix_t* stix, stix_oop_t _class, const void* vptr,
}
stix_pushtmp (stix, &_class); tmp_count++;
/*TODO: protected vptr if it's not STIX_NULL and the variability(indexed_type) is OOP. the current impl is buggy */
switch (indexed_type)
{
@ -229,13 +228,18 @@ stix_oop_t stix_instantiate (stix_t* stix, stix_oop_t _class, const void* vptr,
STIX_ASSERT (vptr == STIX_NULL);
/*
This function is not GC-safe. so i don't want to initialize
propagate the payload of a pointer object. The caller can
call this function and initialize payloads then.
the payload of a pointer object. The caller can call this
function and initialize payloads then.
if (oop && vptr && vlen > 0)
{
stix_oop_oop_t hdr = (stix_oop_oop_t)oop;
STIX_MEMCPY (&hdr->slot[named_instvar], vptr, vlen * STIX_SIZEOF(stix_oop_t));
}
For the above code to work, it should protect the elements of
the vptr array with stix_pushtmp(). So it might be better
to disallow a non-NULL vptr when indexed_type is OOP. See
the assertion above this comment block.
*/
break;