[vmkit-commits] [vmkit] r180453 - Fix merge issue.

Peter Senna Tschudin peter.senna at gmail.com
Thu Apr 25 10:12:49 PDT 2013


Author: peter.senna
Date: Thu Apr 25 12:11:19 2013
New Revision: 180453

URL: http://llvm.org/viewvc/llvm-project?rev=180453&view=rev
Log:
Fix merge issue.
(cherry picked from commit 51fee4942e2fe18514621948d0b56a4669f4a18e)

Modified:
    vmkit/trunk/include/vmkit/VirtualMachine.h
    vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/j3/VMCore/Jnjvm.h
    vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp

Modified: vmkit/trunk/include/vmkit/VirtualMachine.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/vmkit/VirtualMachine.h?rev=180453&r1=180452&r2=180453&view=diff
==============================================================================
--- vmkit/trunk/include/vmkit/VirtualMachine.h (original)
+++ vmkit/trunk/include/vmkit/VirtualMachine.h Thu Apr 25 12:11:19 2013
@@ -204,7 +204,6 @@ public:
   /// set the identity of the object (identity is determined by user).
   ///
   virtual void setType(gc* header, void* type) = 0;
-  virtual void setType(void* header, void* type) = 0;
 
   /// getType - Gets the type of given object.
   ///

Modified: vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp?rev=180453&r1=180452&r2=180453&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/j3/VMCore/Jnjvm.cpp Thu Apr 25 12:11:19 2013
@@ -1404,11 +1404,6 @@ void Jnjvm::setType(gc* header, void* ty
 	src->setVirtualTable((JavaVirtualTable*)type);
 }
 
-void Jnjvm::setType(void* header, void* type)
-{
-	((JavaObject*)header)->setVirtualTable((JavaVirtualTable*)type);
-}
-
 void* Jnjvm::getType(gc* header) {
 	JavaObject* src = 0;
 	llvm_gcroot(src, 0);

Modified: vmkit/trunk/lib/j3/VMCore/Jnjvm.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/VMCore/Jnjvm.h?rev=180453&r1=180452&r2=180453&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/VMCore/Jnjvm.h (original)
+++ vmkit/trunk/lib/j3/VMCore/Jnjvm.h Thu Apr 25 12:11:19 2013
@@ -135,7 +135,6 @@ private:
   virtual void finalizeObject(gc* res);
   virtual void traceObject(gc* obj, word_t closure);
   virtual void setType(gc* header, void* type);
-  virtual void setType(void* header, void* type);
   virtual void* getType(gc* obj);
   virtual size_t getObjectSize(gc* obj);
   virtual const char* getObjectTypeName(gc* obj);

Modified: vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp?rev=180453&r1=180452&r2=180453&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp Thu Apr 25 12:11:19 2013
@@ -119,7 +119,7 @@ extern "C" void* vmkitgcmallocUnresolved
  * Optimized gcmalloc for VT based object layout.                             *
  *****************************************************************************/
 
-extern "C" void* VTgcmalloc(uint32_t sz, VirtualTable* VT) {
+extern "C" void* VTgcmalloc(uint32_t sz, void* VT) {
 	gc* res = 0;
 	llvm_gcroot(res, 0);
 	sz += gcHeader::hiddenHeaderSize();
@@ -128,11 +128,11 @@ extern "C" void* VTgcmalloc(uint32_t sz,
 	return res;
 }
 
-extern "C" void* VTgcmallocUnresolved(uint32_t sz, VirtualTable* VT) {
+extern "C" void* VTgcmallocUnresolved(uint32_t sz, void* VT) {
   gc* res = 0;
   llvm_gcroot(res, 0);
   res = (gc*)VTgcmalloc(sz, VT);
-  if (VT->hasDestructor()) addFinalizationCandidate(res);
+  if (((VirtualTable*)VT)->hasDestructor()) addFinalizationCandidate(res);
   return res;
 }
 
@@ -293,7 +293,12 @@ void Collector::initialise(int argc, cha
 }
 
 extern "C" void* MMTkMutatorAllocate(uint32_t size, void* type) {
-  void* val = MutatorThread::get()->Allocator.Allocate(size);
+  gc* val = NULL;
+  gcHeader* head = NULL;
+  size += gcHeader::hiddenHeaderSize();
+  size = llvm::RoundUpToAlignment(size, sizeof(void*));
+  head = (gcHeader*)MutatorThread::get()->Allocator.Allocate(size);
+  val = head->toReference();
   vmkit::Thread::get()->MyVM->setType(val, type);
   return val;
 }





More information about the vmkit-commits mailing list