diff options
| author | Damien George <damien.p.george@gmail.com> | 2015-10-22 23:45:37 +0100 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2015-11-13 12:49:18 +0000 |
| commit | 3a3db4dcf0400cffef860f61a84979cb1f7a7541 (patch) | |
| tree | cfdcb6931cb120f2f993e10e7db6dc14f40b1ded /py/emitnative.c | |
| parent | 9b7f583b0ca37ee87e5fb82e2d65fcd96a609b2f (diff) | |
py: Put all bytecode state (arg count, etc) in bytecode.
Diffstat (limited to 'py/emitnative.c')
| -rw-r--r-- | py/emitnative.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/py/emitnative.c b/py/emitnative.c index 1fcc84338..99eac7925 100644 --- a/py/emitnative.c +++ b/py/emitnative.c @@ -824,6 +824,10 @@ STATIC void emit_native_end_pass(emit_t *emit) { if (!emit->do_viper_types) { emit->prelude_offset = ASM_GET_CODE_POS(emit->as); + ASM_DATA(emit->as, 1, emit->scope->scope_flags); + ASM_DATA(emit->as, 1, emit->scope->num_pos_args); + ASM_DATA(emit->as, 1, emit->scope->num_kwonly_args); + ASM_DATA(emit->as, 1, emit->scope->num_def_pos_args); ASM_ALIGN(emit->as, ASM_WORD_SIZE); // write argument names as qstr objects @@ -874,8 +878,7 @@ STATIC void emit_native_end_pass(emit_t *emit) { mp_emit_glue_assign_native(emit->scope->raw_code, emit->do_viper_types ? MP_CODE_NATIVE_VIPER : MP_CODE_NATIVE_PY, - f, f_len, emit->scope->num_pos_args, emit->scope->num_kwonly_args, - emit->scope->scope_flags, type_sig); + f, f_len, emit->scope->num_pos_args, emit->scope->scope_flags, type_sig); } } |
