[vmkit-commits] [vmkit] r91793 - in /vmkit/trunk/lib/J3: Compiler/JavaAOTCompiler.cpp VMCore/JnjvmClassLoader.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Dec 20 12:44:07 PST 2009


Author: geoffray
Date: Sun Dec 20 14:44:06 2009
New Revision: 91793

URL: http://llvm.org/viewvc/llvm-project?rev=91793&view=rev
Log:
Verify that we are checking against a real Java object.


Modified:
    vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
    vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h

Modified: vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp?rev=91793&r1=91792&r2=91793&view=diff

==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp Sun Dec 20 14:44:06 2009
@@ -2185,7 +2185,7 @@
 
   for (; I != E; ++I) {
     JavaObject* obj = (JavaObject*)(*I);
-    if (obj->instanceOf(cl)) {
+    if (!VMClassLoader::isVMClassLoader(obj) && obj->instanceOf(cl)) {
       if (currentClass) {
         if (obj->getClass() != currentClass) {
           return 0;

Modified: vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h?rev=91793&r1=91792&r2=91793&view=diff

==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h Sun Dec 20 14:44:06 2009
@@ -444,6 +444,12 @@
   ///
   static VirtualTable VT;
 
+  /// Is the object a VMClassLoader object?
+  ///
+  static bool isVMClassLoader(JavaObject* obj) {
+    return obj->getVirtualTable() == &VT;
+  }
+
   /// staticTracer - Trace the internal class loader.
   ///
   static void staticTracer(VMClassLoader* obj) {





More information about the vmkit-commits mailing list