[vmkit-commits] [vmkit] r58197 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.h JnjvmClassLoader.cpp JnjvmClassLoader.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Oct 26 11:57:09 PDT 2008


Author: geoffray
Date: Sun Oct 26 13:57:09 2008
New Revision: 58197

URL: http://llvm.org/viewvc/llvm-project?rev=58197&view=rev
Log:
Don't be isolate specific on this one.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=58197&r1=58196&r2=58197&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Sun Oct 26 13:57:09 2008
@@ -473,6 +473,10 @@
   }
   
   UserClassPrimitive* toPrimitive(Jnjvm* vm) const;
+  
+  CommonClass* getInternal() {
+    return this;
+  }
 
 };
 

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=58197&r1=58196&r2=58197&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Sun Oct 26 13:57:09 2008
@@ -104,17 +104,12 @@
   
   SuperArray = loadName(asciizConstructUTF8("java/lang/Object"), false,
                         false);
-  
-#ifdef ISOLATE_SHARING
-  if (!ClassArray::SuperArray) {
-    ClassArray::SuperArray = SuperArray->classDef;
-    ClassArray::InterfacesArray[0] = ((Class*)InterfacesArray[0]->classDef);
-    ClassArray::InterfacesArray[1] = ((Class*)InterfacesArray[1]->classDef);
-  }
-#else
-  ClassArray::SuperArray = SuperArray;
-  ClassArray::InterfacesArray = InterfacesArray;
-#endif
+   
+  ClassArray::SuperArray = SuperArray->getInternal();
+  ClassArray::InterfacesArray = 
+    (Class**)allocator.Allocate(2 * sizeof(UserClass*));
+  ClassArray::InterfacesArray[0] = (Class*)InterfacesArray[0]->getInternal();
+  ClassArray::InterfacesArray[1] = (Class*)(InterfacesArray[1]->getInternal());
   
   // And repair the damage: set the interfaces and super of array classes already
   // created.
@@ -246,12 +241,10 @@
   javaLoader = loader;
   isolate = I;
 
-#ifdef ISOLATE_SHARING
   JavaMethod* meth = bootstrapLoader->upcalls->loadInClassLoader;
   loader->classOf->lookupMethodDontThrow(meth->name, meth->type, false, true,
-                                         loadClass);
+                                         &loadClass);
   assert(loadClass && "Loader does not have a loadClass function");
-#endif
 
 }
 
@@ -307,12 +300,7 @@
     const UTF8* javaName = name->internalToJava(isolate, 0, name->size);
     JavaString* str = isolate->UTF8ToStr(javaName);
     Classpath* upcalls = bootstrapLoader->upcalls;
-    UserClass* forCtp = 0;
-#ifdef ISOLATE_SHARING
-    forCtp = loadClass;
-#else
-    forCtp = upcalls->loadInClassLoader->classDef;
-#endif
+    UserClass* forCtp = loadClass;
     JavaObject* obj = (JavaObject*)
       upcalls->loadInClassLoader->invokeJavaObjectVirtual(isolate, forCtp,
                                                           javaLoader, str);

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h Sun Oct 26 13:57:09 2008
@@ -212,9 +212,7 @@
     classes = 0;
   }
 
-#ifdef ISOLATE_SHARING
   UserClass* loadClass;
-#endif
   
   const UTF8* constructArrayName(uint32 steps, const UTF8* className);
   





More information about the vmkit-commits mailing list