diff options
author | Damien George <damien.p.george@gmail.com> | 2014-04-10 12:58:31 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-04-10 12:58:31 +0100 |
commit | 3a8b1607fcbffdbff0a0001d6baacea7693d15b9 (patch) | |
tree | 359d2b30a91c4ffc37ce2ce2734abfa6331d6dd3 /py/objfun.c | |
parent | 635543c72cc9ccfb20c1ec1f64d329eef35ebe2d (diff) | |
parent | 978607aeffb5b1deca3a4ad4b0ab0d0e15b5e271 (diff) |
Merge branch 'master' of github.com:micropython/micropython
Diffstat (limited to 'py/objfun.c')
-rw-r--r-- | py/objfun.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/py/objfun.c b/py/objfun.c index 0b0df3ba4..adf05ce40 100644 --- a/py/objfun.c +++ b/py/objfun.c @@ -211,9 +211,13 @@ arg_error: } STATIC mp_obj_t fun_bc_call(mp_obj_t self_in, uint n_args, uint n_kw, const mp_obj_t *args) { - DEBUG_printf("Input: "); + DEBUG_printf("Input n_args: %d, n_kw: %d\n", n_args, n_kw); + DEBUG_printf("Input pos args: "); dump_args(args, n_args); + DEBUG_printf("Input kw args: "); + dump_args(args + n_args, n_kw * 2); mp_obj_fun_bc_t *self = self_in; + DEBUG_printf("Func n_def_args: %d\n", self->n_def_args); const mp_obj_t *kwargs = args + n_args; mp_obj_t *extra_args = self->extra_args + self->n_def_args; @@ -295,9 +299,9 @@ continue2:; // Now fill in defaults mp_obj_t *d = &flat_args[self->n_args - 1]; mp_obj_t *s = &self->extra_args[self->n_def_args - 1]; - for (int i = self->n_def_args; i > 0; i--) { + for (int i = self->n_def_args; i > 0; i--, d--, s--) { if (*d == MP_OBJ_NULL) { - *d-- = *s--; + *d = *s; } } DEBUG_printf("Args after filling defaults: "); |