Fixed another bug in finalization from heap_close
authorphil <none@none>
Thu, 5 Nov 1998 21:06:20 +0000 (21:06 +0000)
committerphil <none@none>
Thu, 5 Nov 1998 21:06:20 +0000 (21:06 +0000)
mm/heap.old.c

index 39582e83acc2552e51a192d318acb277b341ba9d..c2d7630441091e3ef85bea27acd05af968ba72bf 100644 (file)
@@ -767,14 +767,6 @@ void heap_init (u4 heapbytesize, u4 heapbytestartsize, void **stackbottom)
 
 void heap_close ()
 {
-#ifndef TRACECALLARGS
-       MFREE (heap, heapblock, heapsize); */
-#endif
-       MFREE (startbits, bitfieldtype, heapsize/BITFIELDBITS);
-       MFREE (markbits, bitfieldtype, heapsize/BITFIELDBITS);
-       MFREE (referencebits, bitfieldtype, heapsize/BITFIELDBITS);
-       chain_free (allglobalreferences);
-
        while (livefinalizees) {
                finalizernode *n = livefinalizees->next;
                asm_calljavamethod (livefinalizees->finalizer, 
@@ -783,6 +775,14 @@ void heap_close ()
                FREE (livefinalizees, finalizernode);
                livefinalizees = n;
        }
+
+#ifndef TRACECALLARGS
+       MFREE (heap, heapblock, heapsize);
+#endif
+       MFREE (startbits, bitfieldtype, heapsize/BITFIELDBITS);
+       MFREE (markbits, bitfieldtype, heapsize/BITFIELDBITS);
+       MFREE (referencebits, bitfieldtype, heapsize/BITFIELDBITS);
+       chain_free (allglobalreferences);
 }