diff options
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 0b0df3ba4d..adf05ce404 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: "); |