[vmkit-commits] [vmkit] r85219 - /vmkit/trunk/lib/Mvm/Runtime/Object.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Oct 27 02:15:55 PDT 2009


Author: geoffray
Date: Tue Oct 27 04:15:55 2009
New Revision: 85219

URL: http://llvm.org/viewvc/llvm-project?rev=85219&view=rev
Log:
Finlization and Reference queues are roots.


Modified:
    vmkit/trunk/lib/Mvm/Runtime/Object.cpp

Modified: vmkit/trunk/lib/Mvm/Runtime/Object.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Runtime/Object.cpp?rev=85219&r1=85218&r2=85219&view=diff

==============================================================================
--- vmkit/trunk/lib/Mvm/Runtime/Object.cpp (original)
+++ vmkit/trunk/lib/Mvm/Runtime/Object.cpp Tue Oct 27 04:15:55 2009
@@ -177,8 +177,7 @@
     gc* obj = FinalizationQueue[i];
 
     if (!Collector::isLive(obj)) {
-      Collector::markAndTrace((void*)&FinalizationQueue,
-                              (void**)(FinalizationQueue + i));
+      Collector::markAndTraceRoot(FinalizationQueue + i);
       
       if (CurrentFinalizedIndex >= ToBeFinalizedLength)
         growToBeFinalizedQueue();
@@ -192,8 +191,7 @@
   CurrentIndex = NewIndex;
 
   for (uint32 i = 0; i < CurrentFinalizedIndex; ++i) {
-    Collector::markAndTrace((void*)&ToBeFinalized,
-                            (void**)(ToBeFinalized + i));
+    Collector::markAndTraceRoot(ToBeFinalized + i);
   }
 }
 
@@ -203,14 +201,14 @@
     return 0;
   }
 
-  gc** referent = vm->getReferent(reference);
+  gc** referent = vm->getReferentPtr(reference);
 
   if (!referent) return 0;
 
   if (semantics == SOFT) {
     // TODO: are we are out of memory? Consider that we always are for now.
     if (false) {
-      Collector::markAndTrace((void*)reference, (void**)referent);
+      Collector::markAndTrace(reference, referent);
     }
   } else if (semantics == PHANTOM) {
     // Nothing to do.





More information about the vmkit-commits mailing list