changed the moo_code_t structure a little
This commit is contained in:
parent
92093dd23f
commit
a9045a56b2
@ -2489,18 +2489,27 @@ static MOO_INLINE int emit_byte_instruction (moo_t* moo, moo_oob_t code)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (cc->mth.code.len >= cc->mth.code_capa)
|
||||
if (cc->mth.code.len >= cc->mth.code.capa)
|
||||
{
|
||||
moo_oob_t* tmp;
|
||||
moo_oow_t* tmp2;
|
||||
moo_oow_t newcapa;
|
||||
|
||||
newcapa = MOO_ALIGN (cc->mth.code.len + 1, CODE_BUFFER_ALIGN);
|
||||
|
||||
tmp = moo_reallocmem (moo, cc->mth.code.ptr, newcapa * MOO_SIZEOF(*tmp));
|
||||
tmp = (moo_oob_t*)moo_reallocmem(moo, cc->mth.code.ptr, newcapa * MOO_SIZEOF(*tmp));
|
||||
if (!tmp) return -1;
|
||||
|
||||
tmp2 = (moo_oow_t*)moo_reallocmem(moo, cc->mth.code.locptr, newcapa * MOO_SIZEOF(*tmp2));
|
||||
if (!tmp)
|
||||
{
|
||||
moo_freemem (moo, tmp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
cc->mth.code.capa = newcapa;
|
||||
cc->mth.code.ptr = tmp;
|
||||
cc->mth.code_capa = newcapa;
|
||||
cc->mth.code.locptr = tmp2;
|
||||
}
|
||||
|
||||
cc->mth.code.ptr[cc->mth.code.len++] = code;
|
||||
@ -2549,7 +2558,6 @@ static int emit_single_param_instruction (moo_t* moo, int cmd, moo_oow_t param_1
|
||||
goto write_long;
|
||||
}
|
||||
|
||||
|
||||
case BCODE_JUMP_FORWARD_0:
|
||||
case BCODE_JUMP_BACKWARD_0:
|
||||
case BCODE_JUMPOP_BACKWARD_IF_FALSE_0:
|
||||
|
@ -359,6 +359,10 @@ struct moo_code_t
|
||||
{
|
||||
moo_uint8_t* ptr;
|
||||
moo_oow_t len;
|
||||
moo_oow_t capa;
|
||||
|
||||
/* array that hold the location of the byte code emitted */
|
||||
moo_oow_t* locptr;
|
||||
};
|
||||
|
||||
typedef struct moo_oow_pool_chunk_t moo_oow_pool_chunk_t;
|
||||
@ -471,6 +475,7 @@ struct moo_pooldic_import_data_t
|
||||
moo_oow_t oops_capa;
|
||||
};
|
||||
|
||||
/* data kept by compiler to complie a method */
|
||||
typedef struct moo_method_data_t moo_method_data_t;
|
||||
struct moo_method_data_t
|
||||
{
|
||||
@ -528,7 +533,6 @@ struct moo_method_data_t
|
||||
|
||||
/* byte code */
|
||||
moo_code_t code;
|
||||
moo_oow_t code_capa;
|
||||
};
|
||||
|
||||
typedef struct moo_cunit_class_t moo_cunit_class_t;
|
||||
|
Loading…
Reference in New Issue
Block a user