diff options
Diffstat (limited to 'uscript/val.c')
| -rw-r--r-- | uscript/val.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/uscript/val.c b/uscript/val.c index 357facc..76f1376 100644 --- a/uscript/val.c +++ b/uscript/val.c @@ -74,6 +74,7 @@ struct us_cfunc *create_cfunc(struct us_str *name, us_cfunc_sig func, int argc) cfunc->name = name; cfunc->c = func; cfunc->argc = argc; + cfunc->upvals = da_create(struct us_val, 0); init_obj(wrap_cfunc(cfunc), &cfunc->header); return cfunc; } @@ -116,7 +117,12 @@ void free_val(struct us_val v) mem_free(func); break; } - case VAL_CFUNC: + case VAL_CFUNC: { + struct us_cfunc *cfunc = get_cfunc(v); + da_free(cfunc->upvals); + mem_free(cfunc); + break; + } case VAL_UPVAL: mem_free(get_obj(v)); break; |
