[vmkit-commits] [vmkit] r139098 - in /vmkit/trunk: include/mvm/MethodInfo.h lib/Mvm/CommonThread/ObjectLocks.cpp lib/Mvm/Runtime/MethodInfo.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Sep 4 05:18:23 PDT 2011


Author: geoffray
Date: Sun Sep  4 07:18:23 2011
New Revision: 139098

URL: http://llvm.org/viewvc/llvm-project?rev=139098&view=rev
Log:
Bugfixes in the frametable iterator: on x64 not all frames were registered due to alignment problems.


Modified:
    vmkit/trunk/include/mvm/MethodInfo.h
    vmkit/trunk/lib/Mvm/CommonThread/ObjectLocks.cpp
    vmkit/trunk/lib/Mvm/Runtime/MethodInfo.cpp

Modified: vmkit/trunk/include/mvm/MethodInfo.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/mvm/MethodInfo.h?rev=139098&r1=139097&r2=139098&view=diff
==============================================================================
--- vmkit/trunk/include/mvm/MethodInfo.h (original)
+++ vmkit/trunk/include/mvm/MethodInfo.h Sun Sep  4 07:18:23 2011
@@ -61,7 +61,7 @@
   uint32_t NumCompiledFrames;
   Frames* frames() const {
     return reinterpret_cast<Frames*>(
-        reinterpret_cast<uintptr_t>(this) + sizeof(CompiledFrames));
+        reinterpret_cast<uintptr_t>(this) + kWordSize);
   }
 };
 

Modified: vmkit/trunk/lib/Mvm/CommonThread/ObjectLocks.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/CommonThread/ObjectLocks.cpp?rev=139098&r1=139097&r2=139098&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/CommonThread/ObjectLocks.cpp (original)
+++ vmkit/trunk/lib/Mvm/CommonThread/ObjectLocks.cpp Sun Sep  4 07:18:23 2011
@@ -429,6 +429,7 @@
       varcondThread.wait(&l->internalLock);
     }
   }
+  assert(mvm::ThinLock::owner(self, table) && "Not owner after wait");
       
   l->waitingThreads--;
      

Modified: vmkit/trunk/lib/Mvm/Runtime/MethodInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Runtime/MethodInfo.cpp?rev=139098&r1=139097&r2=139098&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/Runtime/MethodInfo.cpp (original)
+++ vmkit/trunk/lib/Mvm/Runtime/MethodInfo.cpp Sun Sep  4 07:18:23 2011
@@ -61,8 +61,8 @@
         currentFrames = reinterpret_cast<Frames*>(
             reinterpret_cast<uintptr_t>(frame) + MethodInfoHelper::FrameInfoSize(frame->NumLiveOffsets));
       } else {
-        currentFrames = reinterpret_cast<Frames*>(
-            reinterpret_cast<uintptr_t>(currentFrames) + sizeof(Frames));
+        currentFrames = reinterpret_cast<Frames*>(System::WordAlignUp(
+            reinterpret_cast<uintptr_t>(currentFrames) + sizeof(Frames)));
       }
     }
   }





More information about the vmkit-commits mailing list