[llvm-commits] [vmkit] r52278 - /vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sat Jun 14 11:13:59 PDT 2008
Author: geoffray
Date: Sat Jun 14 13:13:59 2008
New Revision: 52278
URL: http://llvm.org/viewvc/llvm-project?rev=52278&view=rev
Log:
Use the class info of the cloned object to know the size of
the result object.
Modified:
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp?rev=52278&r1=52277&r2=52278&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMObject.cpp Sat Jun 14 13:13:59 2008
@@ -31,7 +31,14 @@
jobject _src) {
JavaObject* src = (JavaObject*)_src;
- uint64 size = src->objectSize() + sizeof(void*); // + VT
+ CommonClass* cl = src->classOf;
+ uint64 size = 0;
+ if (cl->isArray) {
+ size = sizeof(JavaArray) + ((JavaArray*)src)->size *
+ ((ClassArray*)cl)->baseClass()->virtualSize;
+ } else {
+ size = cl->virtualSize;
+ }
JavaObject* res = (JavaObject*)
JavaThread::get()->isolate->allocateObject(size, src->getVirtualTable());
memcpy(res, src, size);
More information about the llvm-commits
mailing list