[vmkit-commits] [vmkit] r84139 - in /vmkit/trunk/lib/N3: Mono/MonoMSCorlib.cpp PNetLib/PNetLib.cpp PNetLib/PNetMSCorlib.cpp VMCore/Assembly.h VMCore/VirtualTables.cpp

Gael Thomas gael.thomas at lip6.fr
Wed Oct 14 14:26:20 PDT 2009


Author: gthomas
Date: Wed Oct 14 16:26:20 2009
New Revision: 84139

URL: http://llvm.org/viewvc/llvm-project?rev=84139&view=rev
Log:
Safe access to Assembly::delegatee


Modified:
    vmkit/trunk/lib/N3/Mono/MonoMSCorlib.cpp
    vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp
    vmkit/trunk/lib/N3/PNetLib/PNetMSCorlib.cpp
    vmkit/trunk/lib/N3/VMCore/Assembly.h
    vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp

Modified: vmkit/trunk/lib/N3/Mono/MonoMSCorlib.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/Mono/MonoMSCorlib.cpp?rev=84139&r1=84138&r2=84139&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/Mono/MonoMSCorlib.cpp (original)
+++ vmkit/trunk/lib/N3/Mono/MonoMSCorlib.cpp Wed Oct 14 16:26:20 2009
@@ -156,6 +156,7 @@
 }
 
 VMObject* Assembly::getAssemblyDelegatee() {
+	declare_gcroot(VMObject*, delegatee) = ooo_delegatee;
   if (!delegatee) {
     VMThread::get()->getVM()->error("implement me");  
   }

Modified: vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp?rev=84139&r1=84138&r2=84139&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp (original)
+++ vmkit/trunk/lib/N3/PNetLib/PNetLib.cpp Wed Oct 14 16:26:20 2009
@@ -514,7 +514,8 @@
 		vm->error("unfound assembly %s\n", mvm::PrintBuffer(str->value).cString());
 
   error = 0;
-  return ass->getAssemblyDelegatee();
+	declare_gcroot(VMObject*, delegatee) = ass->getAssemblyDelegatee();
+  return delegatee;
 }
 
 extern "C" PNetString* System_String_Concat_2(PNetString* str1, PNetString* str2) {

Modified: vmkit/trunk/lib/N3/PNetLib/PNetMSCorlib.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/PNetLib/PNetMSCorlib.cpp?rev=84139&r1=84138&r2=84139&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/PNetLib/PNetMSCorlib.cpp (original)
+++ vmkit/trunk/lib/N3/PNetLib/PNetMSCorlib.cpp Wed Oct 14 16:26:20 2009
@@ -159,6 +159,8 @@
 }
 
 VMObject* Assembly::getAssemblyDelegatee() {
+	declare_gcroot(VMObject*, delegatee) = ooo_delegatee;
+
   if (!delegatee) {
     delegatee = (*MSCorlib::assemblyReflection)();
     (*MSCorlib::ctorAssemblyReflection)(delegatee);

Modified: vmkit/trunk/lib/N3/VMCore/Assembly.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/Assembly.h?rev=84139&r1=84138&r2=84139&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/Assembly.h (original)
+++ vmkit/trunk/lib/N3/VMCore/Assembly.h Wed Oct 14 16:26:20 2009
@@ -175,7 +175,7 @@
   Section*      rsrcSection;
   Section*      relocSection;
   Header*       CLIHeader;
-  VMObject*     delegatee;
+  VMObject*     ooo_delegatee;
   Assembly**    assemblyRefs;
 
   uint32 CLIHeaderLocation;

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

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp Wed Oct 14 16:26:20 2009
@@ -63,7 +63,7 @@
 
 void Assembly::TRACER {
   loadedNameClasses->CALL_TRACER;
-  delegatee->MARK_AND_TRACE;
+  ooo_delegatee->MARK_AND_TRACE;
 }
 
 void VMCommonClass::TRACER {





More information about the vmkit-commits mailing list