[vmkit-commits] [vmkit] r55592 - in /vmkit/branches/isolate: include/mvm/Object.h lib/JnJVM/VMCore/JnjvmModule.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Aug 31 13:43:03 PDT 2008
Author: geoffray
Date: Sun Aug 31 15:43:03 2008
New Revision: 55592
URL: http://llvm.org/viewvc/llvm-project?rev=55592&view=rev
Log:
Major bugfix when copying virtual tables. The java/lang/object had
11 entries, not 12.
Modified:
vmkit/branches/isolate/include/mvm/Object.h
vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmModule.cpp
Modified: vmkit/branches/isolate/include/mvm/Object.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/isolate/include/mvm/Object.h?rev=55592&r1=55591&r2=55592&view=diff
==============================================================================
--- vmkit/branches/isolate/include/mvm/Object.h (original)
+++ vmkit/branches/isolate/include/mvm/Object.h Sun Aug 31 15:43:03 2008
@@ -23,6 +23,7 @@
#define VT_TRACER_OFFSET 2
#define VT_PRINT_OFFSET 3
#define VT_HASHCODE_OFFSET 4
+#define VT_NB_FUNCS 5
#define VT_SIZE 5 * sizeof(void*)
Modified: vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=55592&r1=55591&r2=55592&view=diff
==============================================================================
--- vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmModule.cpp Sun Aug 31 15:43:03 2008
@@ -264,13 +264,12 @@
if (cl->super) {
cl->virtualTableSize = cl->super->virtualTableSize;
} else {
- cl->virtualTableSize = VT_SIZE / sizeof(void*);
+ cl->virtualTableSize = VT_NB_FUNCS;
}
res = allocateVT(cl, cl->virtualMethods.begin());
if (!(cl->super)) {
- // 12 = number of virtual methods in java/lang/Object (!!!)
- uint32 size = 12 * sizeof(void*);
+ uint32 size = (cl->virtualTableSize - VT_NB_FUNCS) * sizeof(void*);
#define COPY(CLASS) \
memcpy((void*)((unsigned)CLASS::VT + VT_SIZE), \
(void*)((unsigned)res + VT_SIZE), size);
More information about the vmkit-commits
mailing list