[vmkit-commits] [vmkit] r55044 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.h JavaConstantPool.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Aug 20 03:36:39 PDT 2008
Author: geoffray
Date: Wed Aug 20 05:36:39 2008
New Revision: 55044
URL: http://llvm.org/viewvc/llvm-project?rev=55044&view=rev
Log:
Typo, + verify a class is shared if it is referenced by a shared class in
the constant pool.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=55044&r1=55043&r2=55044&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Wed Aug 20 05:36:39 2008
@@ -439,7 +439,7 @@
#ifdef MULTIPLE_VM
bool isSharedClass() {
- return loader == JnjvmClassLoader::sharedLoader;
+ return classLoader == JnjvmClassLoader::sharedLoader;
}
#endif
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp?rev=55044&r1=55043&r2=55044&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp Wed Aug 20 05:36:39 2008
@@ -290,12 +290,17 @@
JnjvmClassLoader* loader = classDef->classLoader;
const UTF8* name = UTF8At(ctpDef[index]);
if (name->elements[0] == AssessorDesc::I_TAB) {
- // Don't put into ctpRes because the class can be isolate specific
temp = loader->constructArray(name);
} else {
// Put into ctpRes because there is only one representation of the class
- ctpRes[index] = temp = loader->loadName(name, false, false, false);
+ temp = loader->loadName(name, false, false, false);
}
+#ifdef MULTIPLE_VM
+ if (classDef->isSharedClass() && !temp->isSharedClass()) {
+ JavaThread::get()->isolate->unknownError("Class sharing violation");
+ }
+#endif
+ ctpRes[index] = temp;
}
return temp;
}
@@ -309,6 +314,11 @@
if (!temp)
temp = JnjvmClassLoader::bootstrapLoader->lookupClass(name);
}
+#ifdef MULTIPLE_VM
+ if (temp && classDef->isSharedClass() && !temp->isSharedClass()) {
+ JavaThread::get()->isolate->unknownError("Class sharing violation");
+ }
+#endif
return temp;
}
More information about the vmkit-commits
mailing list