[vmkit-commits] [vmkit] r83972 - in /vmkit/trunk/lib/N3/VMCore: VMArray.cpp VMObject.cpp VirtualTables.cpp

Gael Thomas gael.thomas at lip6.fr
Tue Oct 13 08:09:19 PDT 2009


Author: gthomas
Date: Tue Oct 13 10:09:19 2009
New Revision: 83972

URL: http://llvm.org/viewvc/llvm-project?rev=83972&view=rev
Log:
Rename also vmThread in VMObject.cpp. 
ArrayObject::do_print ensures that elements are gcroot.
Does not define gcroot in tracers.


Modified:
    vmkit/trunk/lib/N3/VMCore/VMArray.cpp
    vmkit/trunk/lib/N3/VMCore/VMObject.cpp
    vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp

Modified: vmkit/trunk/lib/N3/VMCore/VMArray.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMArray.cpp?rev=83972&r1=83971&r2=83972&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMArray.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VMArray.cpp Tue Oct 13 10:09:19 2009
@@ -32,6 +32,18 @@
 		buf->write(post);																										\
 	}
 
-ON_ARRAY_CLASSES(DEFINE_ARRAY_PRINT)
+ON_ARRAY_PRIMITIVE_CLASSES(DEFINE_ARRAY_PRINT)
+
+void ArrayObject::do_print(const ArrayObject *self, mvm::PrintBuffer *buf) { 
+	llvm_gcroot(self, 0);																								
+	buf->write("Array<");
+	for(int i=0; i<self->size; i++) {
+		if(i)
+			buf->write(" ");
+		declare_gcroot(VMObject*, cur) = self->elements[i];
+		buf->writeObj(cur);
+	}
+	buf->write(">");
+}
 
 #undef DEFINE_ARRAY_PRINT

Modified: vmkit/trunk/lib/N3/VMCore/VMObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMObject.cpp?rev=83972&r1=83971&r2=83972&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMObject.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VMObject.cpp Tue Oct 13 10:09:19 2009
@@ -32,7 +32,7 @@
       cur->lock->unlock();
       continue;
     } else {
-			declare_gcroot(VMObject *, th) = cur->vmThread;
+			declare_gcroot(VMObject *, th) = cur->ooo_appThread;
 			if (th != 0) {
 				cur->varcond->signal();
 				cur->lock->unlock();

Modified: vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp?rev=83972&r1=83971&r2=83972&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp Tue Oct 13 10:09:19 2009
@@ -67,8 +67,7 @@
 
 // internal objects
 void VMThread::TRACER {
-	declare_gcroot(VMObject*, appThread) = ooo_appThread;
-  appThread->MARK_AND_TRACE;
+  ooo_appThread->MARK_AND_TRACE;
   pendingException->MARK_AND_TRACE;
 	// I suppose that the vm is already traced by the gc
 	//  vm->CALL_TRACER;





More information about the vmkit-commits mailing list