diff --git a/src/core/specials.c b/src/core/specials.c index 1f6723df..e3665432 100644 --- a/src/core/specials.c +++ b/src/core/specials.c @@ -195,9 +195,8 @@ static JanetSlot janetc_var(JanetFopts opts, int32_t argn, const Janet *argv) { JanetSlot ret = dohead(c, opts, &head, argn, argv); if (c->result.status == JANET_COMPILE_ERROR) return janetc_cslot(janet_wrap_nil()); - if (destructure(c, argv[0], ret, varleaf, handleattr(c, argn, argv))) - janetc_freeslot(c, ret); - return janetc_cslot(janet_wrap_nil()); + destructure(c, argv[0], ret, varleaf, handleattr(c, argn, argv)); + return ret; } static int defleaf( @@ -229,9 +228,8 @@ static JanetSlot janetc_def(JanetFopts opts, int32_t argn, const Janet *argv) { JanetSlot ret = dohead(c, opts, &head, argn, argv); if (c->result.status == JANET_COMPILE_ERROR) return janetc_cslot(janet_wrap_nil()); - if (destructure(c, argv[0], ret, defleaf, handleattr(c, argn, argv))) - janetc_freeslot(c, ret); - return janetc_cslot(janet_wrap_nil()); + destructure(c, argv[0], ret, defleaf, handleattr(c, argn, argv)); + return ret; } /*