[vmkit-commits] [vmkit] r85756 - /vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.inc

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Nov 1 14:17:54 PST 2009


Author: geoffray
Date: Sun Nov  1 16:17:54 2009
New Revision: 85756

URL: http://llvm.org/viewvc/llvm-project?rev=85756&view=rev
Log:
Copy the fields of the objets, not the VT and thin lock.


Modified:
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.inc

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.inc?rev=85756&r1=85755&r2=85756&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.inc (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.inc Sun Nov  1 16:17:54 2009
@@ -35,7 +35,7 @@
 
   UserCommonClass* cl = src->getClass();
   Jnjvm* vm = JavaThread::get()->getJVM();
-  uint64 size = 0;
+  size_t size = 0;
   if (cl->isArray()) {
     UserClassArray* array = cl->asArrayClass();
     UserCommonClass* base = array->baseClass();
@@ -50,8 +50,9 @@
   }
   res = (JavaObject*)
     vm->gcAllocator.allocateManagedObject(size, src->getVirtualTable());
-  memcpy(res, src, size);
-  res->lock.initialise();
+  memcpy((void*)((uintptr_t)res + 2 * sizeof(void*)),
+         (void*)((uintptr_t)src + 2 * sizeof(void*)),
+         size - 2 * sizeof(void*));
 
   END_NATIVE_EXCEPTION
 





More information about the vmkit-commits mailing list