]> Nishi Git Mirror - gwion.git/commitdiff
:bomb: Fix object_release and clean.
authorJérémie Astor <fennecdjay@gmail.com>
Tue, 15 Dec 2020 00:34:44 +0000 (01:34 +0100)
committerJérémie Astor <fennecdjay@gmail.com>
Tue, 15 Dec 2020 00:35:13 +0000 (01:35 +0100)
src/emit/emit.c
src/lib/object.c

index 515654ce487484c1f0496f2045588f59bb89f429..ef69ec37c0eee47e313ffe277b1a1caf56955dae 100644 (file)
@@ -720,7 +720,7 @@ ANN static m_bool decl_static(const Emitter emit, const Exp_Decl *decl, const Va
   CHECK_BB(emit_instantiate_decl(emit, v->type, decl->td, var_decl->array, is_ref))
   CHECK_BB(emit_dot_static_data(emit, v, 1))
   emit_add_instr(emit, Assign);
-  (void)emit_addref(emit, 0);
+//  (void)emit_addref(emit, 0);
   regpop(emit, SZ_INT);
   emit->code = code;
   return GW_OK;
@@ -1339,7 +1339,6 @@ ANN static Instr spork_ini(const Emitter emit, const struct Sporker *sp) {
     return instr;
   }
   regpushi(emit, (m_uint)sp->type);
-  const Func f = !sp->code ? sp->exp->d.exp_call.m_func : NULL;
   const Instr instr = emit_add_instr(emit, ForkIni);
   instr->m_val = (m_uint)sp->vm_code;
   instr->m_val2 = sp->type->size;
index c4a02a643c6871ae548b34ae71f3c5b5018b970f..d89f4b7837cc2678719c50878532b2e4162396d9 100644 (file)
@@ -68,7 +68,7 @@ ANN void __release(const M_Object o, const VM_Shred shred) {
   do {
     if(!t->nspc)
       continue;
-    if(isa(t, shred->info->vm->gwion->type[et_union]) > 0) {
+    if(isa(t, shred->info->vm->gwion->type[et_union]) < 0) {
       struct scope_iter iter = { t->nspc->info->value, 0, 0 };\
       Value v;
       while(scope_iter(&iter, &v) > 0) {