Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
authorPaolo Molaro <lupus@oddwiz.org>
Mon, 29 Apr 2002 07:57:22 +0000 (07:57 -0000)
committerPaolo Molaro <lupus@oddwiz.org>
Mon, 29 Apr 2002 07:57:22 +0000 (07:57 -0000)
* gc.c: fix thinko, enable actual finalization since the jit is now
fixed.

svn path=/trunk/mono/; revision=4137

mono/metadata/ChangeLog
mono/metadata/gc.c

index 7f66f6f5049ef5080b93ed682314d0b91c58f69a..c6842501ed6d4f73d3a650192fcf3f208819ce19 100644 (file)
@@ -1,4 +1,9 @@
 
+Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
+
+       * gc.c: fix thinko, enable actual finalization since the jit is now
+       fixed.
+
 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
 
        * gc.c, object.c: take into account that an object may be offset wrt the address
index f7fdd70c3800a41acec272885ae404159450bd05..0044859450bf91e4d3fe4730b904b8b6f8287cde 100644 (file)
@@ -39,11 +39,7 @@ run_finalize (void *obj, void *data)
                }
        }
        /* speedup later... */
-       /*
-        * mono crashes (see bug#23778)
-        g_print ("finalizer is run on %s at %p\n", mono_object_class(o)->name, o);
-        mono_runtime_invoke (o->vtable->klass->vtable [finalize_slot], obj, NULL);
-        */
+        mono_runtime_invoke (o->vtable->klass->vtable [finalize_slot], o, NULL);
 }
 
 /*
@@ -59,9 +55,9 @@ object_register_finalizer (MonoObject *obj, void (*callback)(void *, void*))
 {
 #if HAVE_BOEHM_GC
        guint offset = 0;
-       if (mono_object_class (obj)->ghcimpl)
+       if (!mono_object_class (obj)->ghcimpl)
                offset += 4;
-       /*g_print ("registering %s at %p (base: %p)\n", mono_object_class (obj)->name, obj, GC_base (obj));*/
+       g_assert (GC_base (obj) == (char*)obj - offset);
        GC_register_finalizer ((char*)obj - offset, run_finalize, GUINT_TO_POINTER (offset), NULL, NULL);
 #endif
 }