]> Nishi Git Mirror - gwion.git/commitdiff
:art: improve free_captures
authorfennecdjay <fennecdjay@gmail.com>
Tue, 6 Dec 2022 18:45:03 +0000 (19:45 +0100)
committerfennecdjay <fennecdjay@gmail.com>
Tue, 6 Dec 2022 18:45:03 +0000 (19:45 +0100)
src/lib/closure.c

index 53b4d1241159ceaa715fc8a3eaf52db25cd5d4e4..d58ba0ce86ef0a0483b42611fdfd6c03bd5534cb 100644 (file)
@@ -84,15 +84,15 @@ ANN Type upvalue_type(const Env env, Capture *cap) {
 }
 
 ANN void free_captures(const VM_Shred shred, m_bit *const caps) {
-  uint32_t sz = 0;
+  uint32_t sz = SZ_INT;
   const Capture_List captures = (*(Func_Def*)caps)->captures;
   for(m_uint i = 0; i < captures->len; i++) {
     Capture *const cap = mp_vector_at(captures, Capture, i);
     if(tflag(cap->temp->type, tflag_compound))
-      compound_release(shred, cap->temp->type, caps + SZ_INT + sz);
+      compound_release(shred, cap->temp->type, caps + sz);
     sz += cap->temp->type->size;
   }
-  mp_free2(shred->info->mp, sz + SZ_INT, caps);
+  mp_free2(shred->info->mp, sz, caps);
 }
 
 static INSTR(fptr_capture) {