simplify gc model
This commit is contained in:
@@ -442,7 +442,7 @@ JSFrameRegister *alloc_frame_register(JSContext *ctx, int slot_count) {
|
||||
if (!frame) return NULL;
|
||||
|
||||
/* cap56 = slot count (used by gc_object_size) */
|
||||
frame->hdr = objhdr_make(slot_count, OBJ_FRAME, 0, 0, 0, 0);
|
||||
frame->header = objhdr_make(slot_count, OBJ_FRAME, 0, 0, 0, 0);
|
||||
frame->function = JS_NULL;
|
||||
frame->caller = JS_NULL;
|
||||
frame->address = JS_NewInt32(ctx, 0);
|
||||
@@ -1695,7 +1695,7 @@ JSValue JS_CallRegisterVM(JSContext *ctx, JSCodeRegister *code,
|
||||
case MACH_INVOKE: {
|
||||
/* A=frame_slot, B=result_slot */
|
||||
JSFrameRegister *fr = (JSFrameRegister *)JS_VALUE_GET_PTR(frame->slots[a]);
|
||||
int nr = (int)objhdr_cap56(fr->hdr);
|
||||
int nr = (int)objhdr_cap56(fr->header);
|
||||
int c_argc = (nr >= 2) ? nr - 2 : 0;
|
||||
JSValue fn_val = fr->function;
|
||||
JSFunction *fn = JS_VALUE_GET_FUNCTION(fn_val);
|
||||
@@ -1746,7 +1746,7 @@ JSValue JS_CallRegisterVM(JSContext *ctx, JSCodeRegister *code,
|
||||
case MACH_GOINVOKE: {
|
||||
/* Async invoke: call and discard result */
|
||||
JSFrameRegister *fr = (JSFrameRegister *)JS_VALUE_GET_PTR(frame->slots[a]);
|
||||
int nr = (int)objhdr_cap56(fr->hdr);
|
||||
int nr = (int)objhdr_cap56(fr->header);
|
||||
int c_argc = (nr >= 2) ? nr - 2 : 0;
|
||||
ctx->reg_current_frame = frame_ref.val;
|
||||
ctx->current_register_pc = pc > 0 ? pc - 1 : 0;
|
||||
|
||||
Reference in New Issue
Block a user