diff options
| author | Damien George | 2014-02-16 21:14:50 +0000 |
|---|---|---|
| committer | Damien George | 2014-02-16 21:14:50 +0000 |
| commit | e4758ad2e2b027d3bcbe8b1bfe17087665dbafd0 (patch) | |
| tree | 9b6cce27c5f65d5c80ff04de9b9f9743e82e6c38 /py/emitbc.c | |
| parent | 44739e280e81c2ebf2491818eb5a6d0ef30c7c6b (diff) | |
| parent | ac2e28c6547f34d961e8b0a0ede323c9c32b5315 (diff) | |
Merge pull request #301 from pfalcon/full-kwargs
Support passing positional args as keywords to bytecode functions.
Diffstat (limited to 'py/emitbc.c')
| -rw-r--r-- | py/emitbc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/py/emitbc.c b/py/emitbc.c index 8680f4959..269fcdeb7 100644 --- a/py/emitbc.c +++ b/py/emitbc.c @@ -242,7 +242,14 @@ STATIC void emit_bc_end_pass(emit_t *emit) { emit->code_base = m_new(byte, emit->code_info_size + emit->byte_code_size); } else if (emit->pass == PASS_3) { - rt_assign_byte_code(emit->scope->unique_code_id, emit->code_base, emit->code_info_size + emit->byte_code_size, emit->scope->num_params, emit->scope->num_locals, emit->scope->stack_size, emit->scope->scope_flags); + qstr *arg_names = m_new(qstr, emit->scope->num_params); + for (int i = 0; i < emit->scope->num_params; i++) { + arg_names[i] = emit->scope->id_info[i].qstr; + } + rt_assign_byte_code(emit->scope->unique_code_id, emit->code_base, + emit->code_info_size + emit->byte_code_size, + emit->scope->num_params, emit->scope->num_locals, emit->scope->stack_size, + emit->scope->scope_flags, arg_names); } } |
