[vmkit-commits] [vmkit] r121255 - in /vmkit/branches/multi-vm: lib/Mvm/CommonThread/ObjectLocks.cpp mmtk/mmtk-j3/ObjectModel.cpp

Gael Thomas gael.thomas at lip6.fr
Wed Dec 8 05:48:43 PST 2010


Author: gthomas
Date: Wed Dec  8 07:48:43 2010
New Revision: 121255

URL: http://llvm.org/viewvc/llvm-project?rev=121255&view=rev
Log:
ObjectLocks and ObjectModel are using the virtual table to find the vm instead of using the thread

Modified:
    vmkit/branches/multi-vm/lib/Mvm/CommonThread/ObjectLocks.cpp
    vmkit/branches/multi-vm/mmtk/mmtk-j3/ObjectModel.cpp

Modified: vmkit/branches/multi-vm/lib/Mvm/CommonThread/ObjectLocks.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/Mvm/CommonThread/ObjectLocks.cpp?rev=121255&r1=121254&r2=121255&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/Mvm/CommonThread/ObjectLocks.cpp (original)
+++ vmkit/branches/multi-vm/lib/Mvm/CommonThread/ObjectLocks.cpp Wed Dec  8 07:48:43 2010
@@ -348,7 +348,7 @@
   
     FatLock** tab = LockTable[index >> BitIndex];
   
-    VirtualMachine* vm = mvm::Thread::get()->MyVM;
+    VirtualMachine* vm = obj->getVirtualTable()->vm;
     if (tab == NULL) {
       tab = (FatLock**)vm->allocator.Allocate(
           IndexSize * sizeof(FatLock*), "Index LockTable");

Modified: vmkit/branches/multi-vm/mmtk/mmtk-j3/ObjectModel.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/mmtk/mmtk-j3/ObjectModel.cpp?rev=121255&r1=121254&r2=121255&view=diff
==============================================================================
--- vmkit/branches/multi-vm/mmtk/mmtk-j3/ObjectModel.cpp (original)
+++ vmkit/branches/multi-vm/mmtk/mmtk-j3/ObjectModel.cpp Wed Dec  8 07:48:43 2010
@@ -85,7 +85,7 @@
 
 extern "C" uintptr_t Java_org_j3_mmtk_ObjectModel_copy__Lorg_vmmagic_unboxed_ObjectReference_2I (
     MMTkObject* OM, mvm::gc* src, int allocator) {
-  size_t size = mvm::Thread::get()->MyVM->getObjectSize(src);
+  size_t size = src->getVirtualTable()->vm->getObjectSize(src);
   size = llvm::RoundUpToAlignment(size, sizeof(void*));
   uintptr_t res = JnJVM_org_j3_bindings_Bindings_copy__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2II(
       src, src->getVirtualTable(), size, allocator);
@@ -137,7 +137,7 @@
 
 extern "C" FakeByteArray* Java_org_j3_mmtk_ObjectModel_getTypeDescriptor__Lorg_vmmagic_unboxed_ObjectReference_2 (
     MMTkObject* OM, mvm::gc* src) {
-  const char* name = mvm::Thread::get()->MyVM->getObjectTypeName(src);
+  const char* name = src->getVirtualTable()->vm->getObjectTypeName(src);
   // This code is only used for debugging on a fatal error. It is fine to
   // allocate in the C++ heap.
   return new (strlen(name)) FakeByteArray(name);





More information about the vmkit-commits mailing list