diff options
| author | iamcheeseman <[email protected]> | 2026-04-14 19:35:49 -0400 |
|---|---|---|
| committer | iamcheeseman <[email protected]> | 2026-04-14 19:35:49 -0400 |
| commit | 24e600e7c3ce6dab4c6c3f421e5d1ae35dc04bad (patch) | |
| tree | b3cf0267cb9cd9620b0c2279549300ec65108e72 /uscript/val.c | |
| parent | b60ad836c756f39eb5eafbfadae6847ee5ed5236 (diff) | |
microscript: add core:range()
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; |
