aboutsummaryrefslogtreecommitdiff
path: root/py/emitbc.c
diff options
context:
space:
mode:
authorDamien George2014-02-16 21:14:50 +0000
committerDamien George2014-02-16 21:14:50 +0000
commite4758ad2e2b027d3bcbe8b1bfe17087665dbafd0 (patch)
tree9b6cce27c5f65d5c80ff04de9b9f9743e82e6c38 /py/emitbc.c
parent44739e280e81c2ebf2491818eb5a6d0ef30c7c6b (diff)
parentac2e28c6547f34d961e8b0a0ede323c9c32b5315 (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.c9
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);
}
}