[vmkit-commits] [vmkit] r121249 - in /vmkit/branches/multi-vm/lib: J3/Classpath/ J3/Compiler/ J3/VMCore/ Mvm/Runtime/

Gael Thomas gael.thomas at lip6.fr
Wed Dec 8 05:00:22 PST 2010


Author: gthomas
Date: Wed Dec  8 07:00:22 2010
New Revision: 121249

URL: http://llvm.org/viewvc/llvm-project?rev=121249&view=rev
Log:
remove some useless vm as argument

Modified:
    vmkit/branches/multi-vm/lib/J3/Classpath/Classpath.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathField.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClass.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClassLoader.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMObject.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMRuntime.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMSystemProperties.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThread.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp
    vmkit/branches/multi-vm/lib/J3/Compiler/JavaAOTCompiler.cpp
    vmkit/branches/multi-vm/lib/J3/Compiler/JavaJITCompiler.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.h
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaMetaJIT.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaRuntimeJIT.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/Jnjvm.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h
    vmkit/branches/multi-vm/lib/Mvm/Runtime/SystemThreads.cpp

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/Classpath.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/Classpath.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/Classpath.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/Classpath.inc Wed Dec  8 07:00:22 2010
@@ -35,7 +35,7 @@
 
   verifyNull(Cl);
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, true);
   
   if (cl->isClass() && 
       cl->asClass()->lookupMethodDontThrow(vm->upcalls->clinitName,
@@ -230,12 +230,11 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = 
-    (UserClass*)UserCommonClass::resolvedImplClass(vm, target, true);
-  res = cl->doNew(vm);
+    (UserClass*)UserCommonClass::resolvedImplClass(target, true);
+  res = cl->doNew();
   JavaMethod* meth = JavaObjectConstructor::getInternalMethod(cons);
-  meth->invokeIntSpecial(vm, cl, res);
+  meth->invokeIntSpecial(cl, res);
 
   END_NATIVE_EXCEPTION
 
@@ -255,14 +254,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserCommonClass* base = 
-    UserCommonClass::resolvedImplClass(vm, arrayType, true);
+    UserCommonClass::resolvedImplClass(arrayType, true);
   JnjvmClassLoader* loader = base->classLoader;
   const UTF8* name = base->getName();
   const UTF8* arrayName = loader->constructArrayName(1, name);
   UserClassArray* array = loader->constructArray(arrayName, base);
-  res = array->doNew(arrayLength, vm);
+  res = array->doNew(arrayLength);
 
   END_NATIVE_EXCEPTION
 

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc Wed Dec  8 07:00:22 2010
@@ -88,9 +88,9 @@
   llvm_gcroot(excp, 0);
 	llvm_gcroot(jexcp, 0);
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   JavaMethod* meth = JavaObjectConstructor::getInternalMethod(cons);
   UserClass* cl = JavaObjectConstructor::getClass(cons);
+  Jnjvm* vm = cl->classLoader->vm;
   sint32 nbArgs = args ? ArrayObject::getSize(args) : 0;
   Signdef* sign = meth->getSignature();
   sint32 size = sign->nbArguments;
@@ -103,11 +103,11 @@
       (jvalue*)allocator.Allocate(size * sizeof(jvalue)) : NULL;
 
   if (nbArgs == size) {
-    UserCommonClass* _cl = UserCommonClass::resolvedImplClass(vm, Clazz, false);
+    UserCommonClass* _cl = UserCommonClass::resolvedImplClass(Clazz, false);
     UserClass* cl = _cl->asClass();
     if (cl) {
-      cl->initialiseClass(vm);
-      res = cl->doNew(vm);
+      cl->initialiseClass();
+      res = cl->doNew();
       JavaObject** ptr = (JavaObject**)ArrayObject::getElements(args);
       
       Typedef* const* arguments = sign->getArgumentsType();
@@ -120,7 +120,7 @@
       }
       
       TRY {
-        meth->invokeIntSpecialBuf(vm, cl, res, buf);
+        meth->invokeIntSpecialBuf(cl, res, buf);
       } CATCH {
         excp = mvm::Thread::get()->getPendingException();
       } END_CATCH;
@@ -213,7 +213,7 @@
 
   verifyNull(Meth);
   JavaMethod* meth = JavaObjectConstructor::getInternalMethod(Meth);
-  Jnjvm* vm = JavaThread::get()->getJVM();
+  Jnjvm* vm = meth->classDef->classLoader->vm;
   result = vm->internalUTF8ToStr(meth->type);
   
   END_NATIVE_EXCEPTION

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathField.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathField.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathField.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathField.inc Wed Dec  8 07:00:22 2010
@@ -52,12 +52,11 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
   JavaField* field = JavaObjectField::getInternalField(Field);
   JnjvmClassLoader* loader = cl->classLoader;
   UserCommonClass* fieldCl = field->getSignature()->assocClass(loader);
-  res = fieldCl->getClassDelegatee(vm);
+  res = fieldCl->getClassDelegatee();
 
   END_NATIVE_EXCEPTION
 
@@ -77,14 +76,14 @@
   
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   const Typedef* type = field->getSignature();
   bool stat =  isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -142,13 +141,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -212,13 +211,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat =  isStatic(field->access);
    
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -257,13 +256,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -332,13 +331,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -376,13 +375,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -422,13 +421,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -472,13 +471,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -554,13 +553,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -571,42 +570,42 @@
     if (prim->isBool()) {
       uint8 val =  stat ? field->getStaticInt8Field() :
                           field->getInstanceInt8Field(obj);
-      res = vm->upcalls->boolClass->doNew(vm);
+      res = vm->upcalls->boolClass->doNew();
       vm->upcalls->boolValue->setInstanceInt8Field(res, val);
     } else if (prim->isByte()) {
       sint8 val =  stat ? field->getStaticInt8Field() :
                           field->getInstanceInt8Field(obj);
-      res = vm->upcalls->byteClass->doNew(vm);
+      res = vm->upcalls->byteClass->doNew();
       vm->upcalls->byteValue->setInstanceInt8Field(res, val);
     } else if (prim->isChar()) {
       uint16 val =  stat ? field->getStaticInt16Field() :
                            field->getInstanceInt16Field(obj);
-      res = vm->upcalls->charClass->doNew(vm);
+      res = vm->upcalls->charClass->doNew();
       vm->upcalls->charValue->setInstanceInt16Field(res, val);
     } else if (prim->isShort()) {
       sint16 val =  stat ? field->getStaticInt16Field() :
                            field->getInstanceInt16Field(obj);
-      res = vm->upcalls->shortClass->doNew(vm);
+      res = vm->upcalls->shortClass->doNew();
       vm->upcalls->shortValue->setInstanceInt16Field(res, val);
     } else if (prim->isInt()) {
       sint64 val =  stat ? field->getStaticInt32Field() :
                            field->getInstanceInt32Field(obj);
-      res = vm->upcalls->intClass->doNew(vm);
+      res = vm->upcalls->intClass->doNew();
       vm->upcalls->intValue->setInstanceInt32Field(res, val);
     } else if (prim->isLong()) {
       sint64 val =  stat ? field->getStaticLongField() :
                            field->getInstanceLongField(obj);
-      res = vm->upcalls->longClass->doNew(vm);
+      res = vm->upcalls->longClass->doNew();
       vm->upcalls->longValue->setInstanceLongField(res, val);
     } else if (prim->isFloat()) {
       float val =  stat ? field->getStaticFloatField() :
                           field->getInstanceFloatField(obj);
-      res = vm->upcalls->floatClass->doNew(vm);
+      res = vm->upcalls->floatClass->doNew();
       vm->upcalls->floatValue->setInstanceFloatField(res, val);
     } else if (prim->isDouble()) {
       double val =  stat ? field->getStaticDoubleField() :
                            field->getInstanceDoubleField(obj);
-      res = vm->upcalls->doubleClass->doNew(vm);
+      res = vm->upcalls->doubleClass->doNew();
       vm->upcalls->doubleValue->setInstanceDoubleField(res, val);
     }
   } else {
@@ -634,15 +633,15 @@
   
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   jvalue buf;
   bool stat = isStatic(field->access);
   
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -724,13 +723,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -766,13 +765,13 @@
   
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -837,13 +836,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -901,13 +900,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -965,13 +964,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -1024,13 +1023,13 @@
   
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -1077,13 +1076,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }
@@ -1124,13 +1123,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl = JavaObjectField::getClass(Field);
+  Jnjvm* vm = cl->classLoader->vm;
   JavaField* field = JavaObjectField::getInternalField(Field);
   bool stat = isStatic(field->access);
   
   if (stat) {
-    cl->initialiseClass(vm);
+    cl->initialiseClass();
   } else {
     verifyNull(obj);
   }

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc Wed Dec  8 07:00:22 2010
@@ -122,7 +122,7 @@
       (jvalue*)allocator.Allocate(size * sizeof(jvalue)) : NULL;
   
   if (nbArgs == size) {
-    UserCommonClass* _cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+    UserCommonClass* _cl = UserCommonClass::resolvedImplClass(Cl, false);
     UserClass* cl = (UserClass*)_cl;
     
     if (isVirtual(meth->access)) {
@@ -133,14 +133,14 @@
       }
 
       if (isInterface(cl->access)) {
-        cl->initialiseClass(vm);
+        cl->initialiseClass();
         UserClass* methodCl = 0;
         UserClass* lookup = objCl->isArray() ? objCl->super : objCl->asClass();
         meth = lookup->lookupMethod(meth->name, meth->type, false, true,
                                     &methodCl);
       }
     } else {
-      cl->initialiseClass(vm);
+      cl->initialiseClass();
     }
     
     JavaObject** ptr = ArrayObject::getElements(args);
@@ -158,14 +158,14 @@
       if (isVirtual(meth->access)) {																		\
         if (isPublic(meth->access) && !isFinal(meth->access) &&					\
             !isFinal(meth->classDef->access)) {													\
-          VAR = meth->invoke##TYPE##VirtualBuf(vm, cl, obj, buf);				\
+          VAR = meth->invoke##TYPE##VirtualBuf(cl, obj, buf);						\
         } else {																												\
-          VAR = meth->invoke##TYPE##SpecialBuf(vm, cl, obj, buf);				\
-        }																																\
-      } else {																													\
-        VAR = meth->invoke##TYPE##StaticBuf(vm, cl, buf);								\
-      }																																	\
-    } CATCH {																														\
+          VAR = meth->invoke##TYPE##SpecialBuf(cl, obj, buf);						\
+				}																																\
+			} else {																													\
+				VAR = meth->invoke##TYPE##StaticBuf(cl, buf);										\
+			}																																	\
+		} CATCH {																														\
       exc = mvm::Thread::get()->getPendingException();									\
     } END_CATCH;																												\
 																																				\
@@ -173,7 +173,7 @@
 			mvm::Thread* mut = mvm::Thread::get();														\
 			jexc = Jnjvm::asJavaException(exc);																\
       if (jexc && JavaObject::getClass(jexc)->isAssignableFrom(					\
-																											vm->upcalls->newException)) {	\
+																															 vm->upcalls->newException)) { \
         mut->clearPendingException();																		\
 				JavaThread::j3Thread(mut)->getJVM()->invocationTargetException(jexc); \
       } else {																													\
@@ -192,42 +192,42 @@
       } else if (prim->isBool()) {
         uint32 val = 0;
         RUN_METH(Int, val);
-        res = vm->upcalls->boolClass->doNew(vm);
+        res = vm->upcalls->boolClass->doNew();
         vm->upcalls->boolValue->setInstanceInt8Field(res, val);
       } else if (prim->isByte()) {
         uint32 val = 0;
         RUN_METH(Int, val);
-        res = vm->upcalls->byteClass->doNew(vm);
+        res = vm->upcalls->byteClass->doNew();
         vm->upcalls->byteValue->setInstanceInt8Field(res, val);
       } else if (prim->isChar()) {
         uint32 val = 0;
         RUN_METH(Int, val);
-        res = vm->upcalls->charClass->doNew(vm);
+        res = vm->upcalls->charClass->doNew();
         vm->upcalls->charValue->setInstanceInt16Field(res, val);
       } else if (prim->isShort()) {
         uint32 val = 0;
         RUN_METH(Int, val);
-        res = vm->upcalls->shortClass->doNew(vm);
+        res = vm->upcalls->shortClass->doNew();
         vm->upcalls->shortValue->setInstanceInt16Field(res, val);
       } else if (prim->isInt()) {
         uint32 val = 0;
         RUN_METH(Int, val);
-        res = vm->upcalls->intClass->doNew(vm);
+        res = vm->upcalls->intClass->doNew();
         vm->upcalls->intValue->setInstanceInt32Field(res, val);
       } else if (prim->isLong()) {
         sint64 val = 0;
         RUN_METH(Long, val);
-        res = vm->upcalls->longClass->doNew(vm);
+        res = vm->upcalls->longClass->doNew();
         vm->upcalls->longValue->setInstanceLongField(res, val);
       } else if (prim->isFloat()) {
         float val = 0;
         RUN_METH(Float, val);
-        res = vm->upcalls->floatClass->doNew(vm);
+        res = vm->upcalls->floatClass->doNew();
         vm->upcalls->floatValue->setInstanceFloatField(res, val);
       } else if (prim->isDouble()) {
         double val = 0;
         RUN_METH(Double, val);
-        res = vm->upcalls->doubleClass->doNew(vm);
+        res = vm->upcalls->doubleClass->doNew();
         vm->upcalls->doubleValue->setInstanceDoubleField(res, val);
       }
     } else {

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClass.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClass.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClass.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClass.inc Wed Dec  8 07:00:22 2010
@@ -65,9 +65,9 @@
 
   if (cl != 0) {
     if (clinit && cl->asClass()) {
-      cl->asClass()->initialiseClass(vm);
+      cl->asClass()->initialiseClass();
     }
-    res = cl->getClassDelegatee(vm);
+    res = cl->getClassDelegatee();
   } else {
     vm->classNotFoundException(str);
   }
@@ -94,10 +94,10 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
 
   if (cl->isArray() || cl->isInterface() || cl->isPrimitive()) {
-    ret = (ArrayObject*)vm->upcalls->constructorArrayClass->doNew(0, vm);
+    ret = (ArrayObject*)vm->upcalls->constructorArrayClass->doNew(0);
   } else {
     UserClass* realCl = cl->asClass();;
     uint32 size = 0;
@@ -111,7 +111,7 @@
       }
     }
   
-    ret = (ArrayObject*)vm->upcalls->constructorArrayClass->doNew(size, vm);
+    ret = (ArrayObject*)vm->upcalls->constructorArrayClass->doNew(size);
 
     sint32 index = 0;
     for (uint32 i = 0; i < realCl->nbVirtualMethods; ++i) {
@@ -120,8 +120,8 @@
       if (meth->name->equals(vm->upcalls->initName) && 
           (!publicOnly || pub)) {
         UserClass* Cons = vm->upcalls->newConstructor;
-        tmp = Cons->doNew(vm);
-        vm->upcalls->initConstructor->invokeIntSpecial(vm, Cons, tmp, &Cl, i);
+        tmp = Cons->doNew();
+        vm->upcalls->initConstructor->invokeIntSpecial(Cons, tmp, &Cl, i);
         ArrayObject::setElement(ret, tmp, index);
         index++;
       }
@@ -152,11 +152,11 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
   Classpath* upcalls = vm->upcalls;
 
   if (cl->isArray() || cl->isPrimitive()) {
-    ret = (ArrayObject*)upcalls->methodArrayClass->doNew(0, vm);
+    ret = (ArrayObject*)upcalls->methodArrayClass->doNew(0);
   } else {
     UserClass* realCl = cl->asClass();
     uint32 size = 0;
@@ -172,7 +172,7 @@
     }
 
     
-    ret = (ArrayObject*)upcalls->methodArrayClass->doNew(size, vm);
+    ret = (ArrayObject*)upcalls->methodArrayClass->doNew(size);
 
     sint32 index = 0;
     for (uint32 i = 0; i < realCl->nbVirtualMethods + realCl->nbStaticMethods;
@@ -183,9 +183,9 @@
           (!publicOnly || pub)) {
         // TODO: check parameter types
         UserClass* Meth = vm->upcalls->newMethod;
-        tmp = Meth->doNew(vm);
+        tmp = Meth->doNew();
         str = vm->internalUTF8ToStr(meth->name);
-        upcalls->initMethod->invokeIntSpecial(vm, Meth, tmp, &Cl, &str, i);
+        upcalls->initMethod->invokeIntSpecial(Meth, tmp, &Cl, &str, i);
         ArrayObject::setElement(ret, tmp, index);
         index++;
       }
@@ -210,8 +210,7 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
   res = cl->getAccess();
 
   END_NATIVE_EXCEPTION
@@ -232,7 +231,7 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
   
   const UTF8* iname = cl->getName();
   result = JavaString::internalToJava(iname, vm);
@@ -254,8 +253,7 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
   
   res = cl->isPrimitive();
 
@@ -276,8 +274,7 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
 
   res = cl->isInterface();
 
@@ -300,12 +297,11 @@
   
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
 
   if (cl->isArray()) {
     UserCommonClass* bc = cl->asArrayClass()->baseClass();
-    res = bc->getClassDelegatee(vm);
+    res = bc->getClassDelegatee();
   } else {
     res = 0;
   }
@@ -327,8 +323,7 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
   res = cl->classLoader->getJavaClassLoader();
 
   END_NATIVE_EXCEPTION
@@ -352,8 +347,8 @@
   Jnjvm* vm = JavaThread::get()->getJVM();
   if (!Cl2) vm->nullPointerException();
 
-  UserCommonClass* cl1 = UserCommonClass::resolvedImplClass(vm, Cl1, false);
-  UserCommonClass* cl2 = UserCommonClass::resolvedImplClass(vm, Cl2, false);
+  UserCommonClass* cl1 = UserCommonClass::resolvedImplClass(Cl1, false);
+  UserCommonClass* cl2 = UserCommonClass::resolvedImplClass(Cl2, false);
 
   res = cl2->isAssignableFrom(cl1);
 
@@ -376,11 +371,10 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
   if (cl->isInterface()) res = 0;
   else {
-    if (cl->getSuper()) res = cl->getSuper()->getClassDelegatee(vm);
+    if (cl->getSuper()) res = cl->getSuper()->getClassDelegatee();
     else res = 0;
   }
 
@@ -402,8 +396,7 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
   res = JavaObject::instanceOf(obj, cl);
 
   END_NATIVE_EXCEPTION
@@ -429,10 +422,10 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
 
   if (!cl->isClass()) {
-    ret = (ArrayObject*)vm->upcalls->fieldArrayClass->doNew(0, vm);
+    ret = (ArrayObject*)vm->upcalls->fieldArrayClass->doNew(0);
   } else {
     UserClass* realCl = cl->asClass(); 
     uint32 size = 0;
@@ -445,7 +438,7 @@
     }
 
 
-    ret = (ArrayObject*)vm->upcalls->fieldArrayClass->doNew(size, vm);
+    ret = (ArrayObject*)vm->upcalls->fieldArrayClass->doNew(size);
 
     sint32 index = 0;
     for (uint32 i = 0; i < realCl->nbVirtualFields + realCl->nbStaticFields;
@@ -454,9 +447,9 @@
       if (!publicOnly || isPublic(field->access)) {
         // TODO: check parameter types
         UserClass* Field = vm->upcalls->newField;
-        tmp = Field->doNew(vm);
+        tmp = Field->doNew();
         name = vm->internalUTF8ToStr(field->name);
-        vm->upcalls->initField->invokeIntSpecial(vm, Field, tmp, &Cl, &name, i);
+        vm->upcalls->initField->invokeIntSpecial(Field, tmp, &Cl, &name, i);
         ArrayObject::setElement(ret, tmp, index);
         index++;
       }
@@ -482,12 +475,12 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
-  res = (ArrayObject*)vm->upcalls->classArrayClass->doNew(cl->nbInterfaces, vm);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
+  res = (ArrayObject*)vm->upcalls->classArrayClass->doNew(cl->nbInterfaces);
 
   for (uint16 i = 0; i < cl->nbInterfaces; ++i) {
     UserClass* klass = cl->interfaces[i];
-    ArrayObject::setElement(res, klass->getClassDelegatee(vm), i);
+    ArrayObject::setElement(res, klass->getClassDelegatee(), i);
   }
 
   END_NATIVE_EXCEPTION
@@ -509,14 +502,13 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false)->asClass();
+  UserClass* cl = UserCommonClass::resolvedImplClass(Cl, false)->asClass();
 
   if (cl) {
     cl->resolveInnerOuterClasses();
     UserClass* outer = cl->getOuterClass();
     if (outer) {
-      res = outer->getClassDelegatee(vm);
+      res = outer->getClassDelegatee();
     }
   }
 
@@ -540,7 +532,7 @@
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false)->asClass();
+  UserClass* cl = UserCommonClass::resolvedImplClass(Cl, false)->asClass();
   if (cl) {
     cl->resolveInnerOuterClasses();
     UserClassArray* array = vm->upcalls->constructorArrayClass;
@@ -556,11 +548,11 @@
       sizeArray = cl->nbInnerClasses;
     }
 
-    result = (ArrayObject*)array->doNew(sizeArray, vm);
+    result = (ArrayObject*)array->doNew(sizeArray);
     for (uint16 i = 0; i < cl->nbInnerClasses; ++i) {
       UserClass* klass = cl->innerClasses[i];
       if (!publicOnly || isPublic(klass->innerAccess))
-        ArrayObject::setElement(result, klass->getClassDelegatee(vm), i); 
+        ArrayObject::setElement(result, klass->getClassDelegatee(), i); 
     }
   }
   
@@ -601,7 +593,7 @@
 
   Jnjvm* vm = JavaThread::get()->getJVM();
   UserClassArray* array = vm->upcalls->constructorArrayAnnotation;
-  res = (ArrayObject*)array->doNew(0, vm);
+  res = (ArrayObject*)array->doNew(0);
 
   END_NATIVE_EXCEPTION
 
@@ -620,8 +612,7 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false)->asClass();
+  UserClass* cl = UserCommonClass::resolvedImplClass(Cl, false)->asClass();
 
   if (cl) res = cl->isAnonymous;
 

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClassLoader.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClassLoader.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClassLoader.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMClassLoader.inc Wed Dec  8 07:00:22 2010
@@ -44,7 +44,7 @@
     abort();
   }
   
-  res = prim->getClassDelegatee(vm);
+  res = prim->getClassDelegatee();
 
   END_NATIVE_EXCEPTION
 
@@ -72,7 +72,7 @@
     JnjvmClassLoader::getJnjvmLoaderFromJavaObject(loader, vm);
   UserCommonClass* cl = JCL->lookupClassFromJavaString(name);
 
-  if (cl) res = cl->getClassDelegatee(vm);
+  if (cl) res = cl->getClassDelegatee();
 
   END_NATIVE_EXCEPTION
 
@@ -100,7 +100,7 @@
   JnjvmClassLoader* JCL = vm->bootstrapLoader;
   UserCommonClass* cl = JCL->loadClassFromJavaString(str, doResolve, false);
 
-  if (cl != 0) res = cl->getClassDelegatee(vm);
+  if (cl != 0) res = cl->getClassDelegatee();
   
   END_NATIVE_EXCEPTION
 
@@ -154,7 +154,7 @@
     UserClass* cl = JCL->constructClass(name, classBytes);
     cl->resolveClass();
 
-    res = cl->getClassDelegatee(vm, pd);
+    res = cl->getClassDelegatee(pd);
   } else {
     excp = vm->CreateLinkageError("duplicate class definition");
     mvm::Thread::get()->setPendingException(excp)->throwIt();
@@ -177,8 +177,7 @@
   BEGIN_NATIVE_EXCEPTION(0)
   
   verifyNull(Cl);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass::resolvedImplClass(Cl, false);
 
   END_NATIVE_EXCEPTION
 }
@@ -363,7 +362,7 @@
   BEGIN_NATIVE_EXCEPTION(0)
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  obj = (ArrayObject*)vm->upcalls->ArrayOfString->doNew(NUM_BOOT_PACKAGES, vm);
+  obj = (ArrayObject*)vm->upcalls->ArrayOfString->doNew(NUM_BOOT_PACKAGES);
   for (uint32 i = 0; i < NUM_BOOT_PACKAGES; ++i) {
     ArrayObject::setElement(obj, vm->asciizToStr(bootPackages[i]), i);
   }

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMObject.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMObject.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMObject.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMObject.inc Wed Dec  8 07:00:22 2010
@@ -70,8 +70,7 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  res = JavaObject::getClass(obj)->getClassDelegatee(vm);
+  res = JavaObject::getClass(obj)->getClassDelegatee();
 
   END_NATIVE_EXCEPTION
 

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMRuntime.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMRuntime.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMRuntime.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMRuntime.inc Wed Dec  8 07:00:22 2010
@@ -56,7 +56,7 @@
   sint32 lgPost = vm->upcalls->postlib->size;
   
   uint32 size = (uint32)(lgPre + lgLib + lgPost);
-  array = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(size, vm);
+  array = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(size);
   uint16* elements = ArrayUInt16::getElements(array);
 
   memmove(elements, vm->upcalls->prelib->elements,

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc Wed Dec  8 07:00:22 2010
@@ -48,12 +48,12 @@
   uint32 finalSize = th->getJavaFrameContext((void**)buffer);
   
   result = (ArrayObject*)
-    vm->upcalls->stackTraceArray->doNew(finalSize, vm);
+    vm->upcalls->stackTraceArray->doNew(finalSize);
    
   for (uint32 i = 0; i != finalSize; ++i) {
     JavaMethod* meth = ((JavaMethod**)buffer)[i];
     assert(meth && "Wrong stack trace");
-    delegatee = meth->classDef->getClassDelegatee(vm);;
+    delegatee = meth->classDef->getClassDelegatee();;
     ArrayObject::setElement(result, delegatee, i);
   }
   
@@ -75,8 +75,7 @@
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, false);
   res = cl->classLoader->getJavaClassLoader();
 
   END_NATIVE_EXCEPTION

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMSystemProperties.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMSystemProperties.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMSystemProperties.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMSystemProperties.inc Wed Dec  8 07:00:22 2010
@@ -36,8 +36,7 @@
   Val = vm->asciizToStr(val);
   Key = vm->asciizToStr(key);
                         
-  vm->upcalls->setProperty->invokeIntSpecial(
-      vm, (UserClass*)JavaObject::getClass(prop), prop, &Key, &Val);
+  vm->upcalls->setProperty->invokeIntSpecial((UserClass*)JavaObject::getClass(prop), prop, &Key, &Val);
 }
 
 void setUnameProp(Jnjvm* vm, JavaObject* prop) {

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThread.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThread.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThread.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThread.inc Wed Dec  8 07:00:22 2010
@@ -67,7 +67,7 @@
   assert(vmThread->getVirtualTable());
   assert(javaThread->getVirtualTable());
   // Run the VMThread::run function
-  vm->upcalls->runVMThread->invokeIntSpecial(vm, vmthClass, vmThread);
+  vm->upcalls->runVMThread->invokeIntSpecial(vmthClass, vmThread);
  
   // Remove the thread from the list.
   if (!isDaemon) {

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc Wed Dec  8 07:00:22 2010
@@ -44,10 +44,10 @@
 
   if (sizeof(void*) == 4) {
     ClassArray* cl = vm->upcalls->ArrayOfInt;
-    result = (ArrayPtr*) cl->doNew(length, vm);
+    result = (ArrayPtr*) cl->doNew(length);
   } else {
     ClassArray* cl = vm->upcalls->ArrayOfLong;
-    result = (ArrayPtr*) cl->doNew(length, vm);
+    result = (ArrayPtr*) cl->doNew(length);
   }
   
   // Don't call th->getFrameContext because it is not GC-safe.
@@ -61,7 +61,7 @@
   }
 
   // Set the tempory data in the new VMThrowable object.
-  vmThrowable = vm->upcalls->newVMThrowable->doNew(vm);
+  vmThrowable = vm->upcalls->newVMThrowable->doNew();
   vm->upcalls->vmDataVMThrowable->setInstanceObjectField(vmThrowable, result);
   return vmThrowable;
 }
@@ -116,8 +116,8 @@
   uint16 lineNumber = meth->lookupLineNumber(reinterpret_cast<uintptr_t>(ip));
 
   UserClass* newS = vm->upcalls->newStackTraceElement;
-  res = newS->doNew(vm);
-  vm->upcalls->initStackTraceElement->invokeIntSpecial(vm, newS, res,
+  res = newS->doNew();
+  vm->upcalls->initStackTraceElement->invokeIntSpecial(newS, res,
                                                        &sourceName,
                                                        lineNumber,
                                                        &className,
@@ -170,7 +170,7 @@
   }
 
   result = (ArrayObject*)
-    vm->upcalls->stackTraceArray->doNew(size, vm);
+    vm->upcalls->stackTraceArray->doNew(size);
   
   cur = 0;
   for (sint32 i = index; i < JavaArray::getSize(stack); ++i) {

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp Wed Dec  8 07:00:22 2010
@@ -51,9 +51,9 @@
   llvm_gcroot(th, 0);
   llvm_gcroot(name, 0);
 
-  th = newThread->doNew(vm);
+  th = newThread->doNew();
   myth->javaThread = th;
-  vmth = (JavaObjectVMThread*)newVMThread->doNew(vm);
+  vmth = (JavaObjectVMThread*)newVMThread->doNew();
   name = vm->asciizToStr(thName);
   
   threadName->setInstanceObjectField(th, name);
@@ -65,9 +65,9 @@
   JavaObjectVMThread::setVmdata(vmth, myth);
   
   group->setInstanceObjectField(th, Group);
-  groupAddThread->invokeIntSpecial(vm, threadGroup, Group, &th);
+  groupAddThread->invokeIntSpecial(threadGroup, Group, &th);
   
-  finaliseCreateInitialThread->invokeIntStatic(vm, inheritableThreadLocal, &th);
+  finaliseCreateInitialThread->invokeIntStatic(inheritableThreadLocal, &th);
 }
 
 
@@ -91,13 +91,13 @@
 
   // Resolve and initialize classes first.
   newThread->resolveClass();
-  newThread->initialiseClass(vm);
+  newThread->initialiseClass();
   
   newVMThread->resolveClass();
-  newVMThread->initialiseClass(vm);
+  newVMThread->initialiseClass();
   
   threadGroup->resolveClass();
-  threadGroup->initialiseClass(vm);
+  threadGroup->initialiseClass();
 
   // Create the main thread
   RG = rootGroup->getStaticObjectField();
@@ -106,8 +106,8 @@
   CreateJavaThread(vm, vm->javaMainThread, "main", RG);
 
   // Create the "system" group.
-  SystemGroup = threadGroup->doNew(vm);
-  initGroup->invokeIntSpecial(vm, threadGroup, SystemGroup);
+  SystemGroup = threadGroup->doNew();
+  initGroup->invokeIntSpecial(threadGroup, SystemGroup);
   systemName = vm->asciizToStr("system");
   groupName->setInstanceObjectField(SystemGroup, systemName);
 }
@@ -233,7 +233,7 @@
 
   JavaThread* th = JavaThread::get();
   UserClass* cl = th->getCallingClassLevel(2);
-  if (cl != NULL) res = cl->getClassDelegatee(th->getJVM());
+  if (cl != NULL) res = cl->getClassDelegatee();
   
   END_NATIVE_EXCEPTION
 
@@ -278,9 +278,8 @@
   BEGIN_NATIVE_EXCEPTION(0)
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
   UserClass* cl = th->getCallingClassLevel(index);
-  if (cl) res = cl->getClassDelegatee(vm);
+  if (cl) res = cl->getClassDelegatee();
   
   END_NATIVE_EXCEPTION
 
@@ -301,7 +300,7 @@
   
   Jnjvm* vm = JavaThread::get()->getJVM();
   UserClassArray* array = vm->upcalls->constructorArrayAnnotation;
-  res = array->doNew(0, vm);
+  res = array->doNew(0);
 
   END_NATIVE_EXCEPTION
 

Modified: vmkit/branches/multi-vm/lib/J3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Compiler/JavaAOTCompiler.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/Compiler/JavaAOTCompiler.cpp Wed Dec  8 07:00:22 2010
@@ -1980,7 +1980,7 @@
               if (!strncmp(UTF8Buffer(cl->name).cString(), i->c_str(),
                            i->length() - 1)) {
                 TRY {
-                  cl->asClass()->initialiseClass(vm);
+                  cl->asClass()->initialiseClass();
                 } CATCH {
                   fprintf(stderr, "Error when initializing %s\n",
                           UTF8Buffer(cl->name).cString());
@@ -1994,7 +1994,7 @@
             CommonClass* cl = bootstrapLoader->lookupClass(name);
             if (cl && cl->isClass()) {
               TRY {
-                cl->asClass()->initialiseClass(vm);
+                cl->asClass()->initialiseClass();
               } CATCH {
                 fprintf(stderr, "Error when initializing %s\n",
                         UTF8Buffer(cl->name).cString());
@@ -2036,7 +2036,7 @@
       
       if (!M->clinits->empty()) {
         vm->loadBootstrap();
-        cl->initialiseClass(vm);
+        cl->initialiseClass();
         bootstrapLoader->setCompiler(M);
       }
       

Modified: vmkit/branches/multi-vm/lib/J3/Compiler/JavaJITCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Compiler/JavaJITCompiler.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Compiler/JavaJITCompiler.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/Compiler/JavaJITCompiler.cpp Wed Dec  8 07:00:22 2010
@@ -135,8 +135,7 @@
 }
 
 Constant* JavaJITCompiler::getJavaClassPtr(CommonClass* cl) {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  JavaObject* const* obj = cl->getClassDelegateePtr(vm);
+  JavaObject* const* obj = cl->getClassDelegateePtr();
   assert(obj && "Delegatee not created");
   Constant* CI = ConstantInt::get(Type::getInt64Ty(getLLVMContext()),
                                   uint64(obj));
@@ -161,7 +160,7 @@
     obj = classDef->getStaticInstance();
     if (!obj) {
       // Allocate now so that compiled code can reference it.
-      obj = classDef->allocateStaticInstance(JavaThread::get()->getJVM());
+      obj = classDef->allocateStaticInstance();
     }
     classDef->release();
   }

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.cpp Wed Dec  8 07:00:22 2010
@@ -145,7 +145,8 @@
   
 }
 
-UserClassPrimitive* CommonClass::toPrimitive(Jnjvm* vm) const {
+UserClassPrimitive* CommonClass::toPrimitive() const {
+	Jnjvm* vm = classLoader->vm;
   if (this == vm->upcalls->voidClass) {
     return vm->upcalls->OfVoid;
   } else if (this == vm->upcalls->intClass) {
@@ -252,13 +253,13 @@
   access = ACC_FINAL | ACC_ABSTRACT | ACC_PUBLIC | JNJVM_ARRAY;
 }
 
-JavaObject* UserClassArray::doNew(sint32 n, Jnjvm* vm) {
+JavaObject* UserClassArray::doNew(sint32 n) {
   JavaObject* res = NULL;
   llvm_gcroot(res, 0);
   if (n < 0) {
-    vm->negativeArraySizeException(n);
+    classLoader->vm->negativeArraySizeException(n);
   } else if (n > JavaArray::MaxArraySize) {
-    vm->outOfMemoryError();
+    classLoader->vm->outOfMemoryError();
   }
   UserCommonClass* cl = baseClass();
   uint32 logSize = cl->isPrimitive() ? 
@@ -373,7 +374,7 @@
   JavaMethod* res = lookupMethodDontThrow(name, type, isStatic, recurse,
                                           methodCl);
   if (!res) {
-    JavaThread::get()->getJVM()->noSuchMethodError(this, name);
+    classLoader->vm->noSuchMethodError(this, name);
   }
   return res;
 }
@@ -382,7 +383,7 @@
   JavaMethod* res = lookupInterfaceMethodDontThrow(name, type);
 
   if (!res) {
-    JavaThread::get()->getJVM()->noSuchMethodError(this, name);
+    classLoader->vm->noSuchMethodError(this, name);
   }
   return res;
 }
@@ -435,12 +436,12 @@
   JavaField* res = lookupFieldDontThrow(name, type, isStatic, recurse,
                                         definingClass);
   if (!res) {
-    JavaThread::get()->getJVM()->noSuchFieldError(this, name);
+    classLoader->vm->noSuchFieldError(this, name);
   }
   return res;
 }
 
-JavaObject* UserClass::doNew(Jnjvm* vm) {
+JavaObject* UserClass::doNew() {
   JavaObject* res = NULL;
   llvm_gcroot(res, 0);
   assert(this && "No class when allocating.");
@@ -586,7 +587,7 @@
   ((float*)((uint64)obj + ptrOffset))[0] = val;
 }
 
-void JavaField::InitStaticField(Jnjvm* vm) {
+void JavaField::InitStaticField() {
   const Typedef* type = getSignature();
   Attribut* attribut = lookupAttribut(Attribut::constantAttribut);
 
@@ -597,6 +598,7 @@
     JavaConstantPool * ctpInfo = classDef->ctpInfo;
     uint16 idx = reader.readU2();
     if (type->isPrimitive()) {
+			Jnjvm* vm = classDef->classLoader->vm;
       UserCommonClass* cl = type->assocClass(vm->bootstrapLoader);
       if (cl == vm->upcalls->OfLong) {
         InitStaticField((uint64)ctpInfo->LongAt(idx));
@@ -619,7 +621,7 @@
   } 
 }
 
-void* UserClass::allocateStaticInstance(Jnjvm* vm) {
+void* UserClass::allocateStaticInstance() {
 #ifdef USE_GC_BOEHM
   void* val = GC_MALLOC(getStaticSize());
 #else
@@ -899,7 +901,7 @@
     ctpInfo->resolveClassName(reader.readU2());
   
   if (!(thisClassName->equals(name))) {
-    JavaThread::get()->getJVM()->noClassDefFoundError(this, thisClassName);
+    classLoader->vm->noClassDefFoundError(this, thisClassName);
   }
 
   readParents(reader);
@@ -961,11 +963,11 @@
   }
 }
 
-static JavaObject* getClassType(Jnjvm* vm, JnjvmClassLoader* loader,
+static JavaObject* getClassType(JnjvmClassLoader* loader,
                                 Typedef* type) {
   UserCommonClass* res = type->assocClass(loader);
   assert(res && "No associated class");
-  return res->getClassDelegatee(vm);
+  return res->getClassDelegatee();
 }
 
 ArrayObject* JavaMethod::getParameterTypes(JnjvmClassLoader* loader) {
@@ -975,13 +977,12 @@
   llvm_gcroot(res, 0);
   llvm_gcroot(delegatee, 0);
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   Signdef* sign = getSignature();
   Typedef* const* arguments = sign->getArgumentsType();
-  res = (ArrayObject*)vm->upcalls->classArrayClass->doNew(sign->nbArguments,vm);
+  res = (ArrayObject*)loader->vm->upcalls->classArrayClass->doNew(sign->nbArguments);
 
   for (uint32 index = 0; index < sign->nbArguments; ++index) {
-    delegatee = getClassType(vm, loader, arguments[index]);
+    delegatee = getClassType(loader, arguments[index]);
     ArrayObject::setElement(res, delegatee, index);
   }
 
@@ -990,9 +991,8 @@
 }
 
 JavaObject* JavaMethod::getReturnType(JnjvmClassLoader* loader) {
-  Jnjvm* vm = JavaThread::get()->getJVM();
   Typedef* ret = getSignature()->getReturnType();
-  return getClassType(vm, loader, ret);
+  return getClassType(loader, ret);
 }
 
 ArrayObject* JavaMethod::getExceptionTypes(JnjvmClassLoader* loader) {
@@ -1003,21 +1003,21 @@
   llvm_gcroot(delegatee, 0);
   
   Attribut* exceptionAtt = lookupAttribut(Attribut::exceptionsAttribut);
-  Jnjvm* vm = JavaThread::get()->getJVM();
+  Jnjvm* vm = loader->vm;
   if (exceptionAtt == 0) {
-    return (ArrayObject*)vm->upcalls->classArrayClass->doNew(0, vm);
+    return (ArrayObject*)vm->upcalls->classArrayClass->doNew(0);
   } else {
     UserConstantPool* ctp = classDef->getConstantPool();
     Reader reader(exceptionAtt, classDef->bytes);
     uint16 nbe = reader.readU2();
-    res = (ArrayObject*)vm->upcalls->classArrayClass->doNew(nbe, vm);
+    res = (ArrayObject*)vm->upcalls->classArrayClass->doNew(nbe);
 
     for (uint16 i = 0; i < nbe; ++i) {
       uint16 idx = reader.readU2();
       UserCommonClass* cl = ctp->loadClass(idx);
       assert(cl->asClass() && "Wrong exception type");
       cl->asClass()->resolveClass();
-      delegatee = cl->getClassDelegatee(vm);
+      delegatee = cl->getClassDelegatee();
       ArrayObject::setElement(res, delegatee, i);
     }
     return res;
@@ -1036,8 +1036,7 @@
 
 
 
-UserCommonClass* UserCommonClass::resolvedImplClass(Jnjvm* vm,
-                                                    JavaObject* clazz,
+UserCommonClass* UserCommonClass::resolvedImplClass(JavaObject* clazz,
                                                     bool doClinit) {
 
   llvm_gcroot(clazz, 0);
@@ -1046,7 +1045,7 @@
   assert(cl && "No class in Class object");
   if (cl->isClass()) {
     cl->asClass()->resolveClass();
-    if (doClinit) cl->asClass()->initialiseClass(vm);
+    if (doClinit) cl->asClass()->initialiseClass();
   }
   return cl;
 }
@@ -1244,9 +1243,9 @@
 
 ArrayUInt16* JavaMethod::toString() const {
    
-  Jnjvm* vm = JavaThread::get()->getJVM();
+  Jnjvm* vm = classDef->classLoader->vm;
   uint32 size = classDef->name->size + name->size + type->size + 1;
-  ArrayUInt16* res = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(size, vm);
+  ArrayUInt16* res = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(size);
   llvm_gcroot(res, 0);
 
   uint32 i = 0;
@@ -1763,27 +1762,27 @@
 void Class::acquire() {
   JavaObject* delegatee = NULL;
   llvm_gcroot(delegatee, 0);
-  delegatee = getClassDelegatee(JavaThread::get()->getJVM());
+  delegatee = getClassDelegatee();
   JavaObject::acquire(delegatee);
 }
   
 void Class::release() {
   JavaObject* delegatee = NULL;
   llvm_gcroot(delegatee, 0);
-  delegatee = getClassDelegatee(JavaThread::get()->getJVM());
+  delegatee = getClassDelegatee();
   JavaObject::release(delegatee);
 }
 
 void Class::waitClass() {
   JavaObject* delegatee = NULL;
   llvm_gcroot(delegatee, 0);
-  delegatee = getClassDelegatee(JavaThread::get()->getJVM());
+  delegatee = getClassDelegatee();
   JavaObject::wait(delegatee);
 }
   
 void Class::broadcastClass() {
   JavaObject* delegatee = NULL;
   llvm_gcroot(delegatee, 0);
-  delegatee = getClassDelegatee(JavaThread::get()->getJVM());
+  delegatee = getClassDelegatee();
   JavaObject::notifyAll(delegatee);
 }

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.h?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.h (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaClass.h Wed Dec  8 07:00:22 2010
@@ -300,12 +300,12 @@
   /// getClassDelegatee - Return the java/lang/Class representation of this
   /// class.
   ///
-  JavaObject* getClassDelegatee(Jnjvm* vm, JavaObject* pd = NULL);
+  JavaObject* getClassDelegatee(JavaObject* pd = NULL);
   
   /// getClassDelegateePtr - Return a pointer on the java/lang/Class
   /// representation of this class. Used for JNI.
   ///
-  JavaObject* const* getClassDelegateePtr(Jnjvm* vm, JavaObject* pd = NULL);
+  JavaObject* const* getClassDelegateePtr(JavaObject* pd = NULL);
   
   /// CommonClass - Create a class with th given name.
   ///
@@ -325,7 +325,7 @@
   /// toPrimitive - Returns the primitive class which represents
   /// this class, ie void for java/lang/Void.
   ///
-  UserClassPrimitive* toPrimitive(Jnjvm* vm) const;
+  UserClassPrimitive* toPrimitive() const;
  
   /// getInternal - Return the class.
   ///
@@ -353,7 +353,7 @@
   /// resolvedImplClass - Return the internal representation of the
   /// java.lang.Class object. The class must be resolved.
   //
-  static UserCommonClass* resolvedImplClass(Jnjvm* vm, JavaObject* delegatee,
+  static UserCommonClass* resolvedImplClass(JavaObject* delegatee,
                                             bool doClinit);
 #ifdef USE_GC_BOEHM
   void* operator new(size_t sz, mvm::BumpPtrAllocator& allocator) {
@@ -588,7 +588,7 @@
   
   /// doNew - Allocates a Java object whose class is this class.
   ///
-  JavaObject* doNew(Jnjvm* vm);
+  JavaObject* doNew();
   
   /// tracer - Tracer function of instances of Class.
   ///
@@ -603,7 +603,7 @@
   
   /// allocateStaticInstance - Allocate the static instance of this class.
   ///
-  void* allocateStaticInstance(Jnjvm* vm);
+  void* allocateStaticInstance();
   
   /// Class - Create a class in the given virtual machine and with the given
   /// name.
@@ -658,7 +658,7 @@
   /// initialiseClass - If the class has not been initialized yet,
   /// initialize it.
   ///
-  void initialiseClass(Jnjvm* vm);
+  void initialiseClass();
   
   /// acquire - Acquire this class lock.
   ///
@@ -802,7 +802,7 @@
 
   /// doNew - Allocate a new array in the given vm.
   ///
-  JavaObject* doNew(sint32 n, Jnjvm* vm);
+  JavaObject* doNew(sint32 n);
 
   /// ClassArray - Construct a Java array class with the given name.
   ///
@@ -998,106 +998,106 @@
 //===----------------------------------------------------------------------===//
   
   /// This class of methods takes a variable argument list.
-  uint32 invokeIntSpecialAP(Jnjvm* vm, UserClass*, JavaObject* obj, va_list ap)
+  uint32 invokeIntSpecialAP(UserClass*, JavaObject* obj, va_list ap)
     __attribute__ ((noinline));
-  float invokeFloatSpecialAP(Jnjvm* vm, UserClass*, JavaObject* obj, va_list ap)
+  float invokeFloatSpecialAP(UserClass*, JavaObject* obj, va_list ap)
     __attribute__ ((noinline));
-  double invokeDoubleSpecialAP(Jnjvm* vm, UserClass*, JavaObject* obj,
+  double invokeDoubleSpecialAP(UserClass*, JavaObject* obj,
                                va_list ap) __attribute__ ((noinline));
-  sint64 invokeLongSpecialAP(Jnjvm* vm, UserClass*, JavaObject* obj, va_list ap)
+  sint64 invokeLongSpecialAP(UserClass*, JavaObject* obj, va_list ap)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectSpecialAP(Jnjvm* vm, UserClass*, JavaObject* obj,
+  JavaObject* invokeJavaObjectSpecialAP(UserClass*, JavaObject* obj,
                                         va_list ap) __attribute__ ((noinline));
   
-  uint32 invokeIntVirtualAP(Jnjvm* vm, UserClass*, JavaObject* obj, va_list ap)
+  uint32 invokeIntVirtualAP(UserClass*, JavaObject* obj, va_list ap)
     __attribute__ ((noinline));
-  float invokeFloatVirtualAP(Jnjvm* vm, UserClass*, JavaObject* obj, va_list ap)
+  float invokeFloatVirtualAP(UserClass*, JavaObject* obj, va_list ap)
     __attribute__ ((noinline));
-  double invokeDoubleVirtualAP(Jnjvm* vm, UserClass*, JavaObject* obj,
+  double invokeDoubleVirtualAP(UserClass*, JavaObject* obj,
                                va_list ap) __attribute__ ((noinline));
-  sint64 invokeLongVirtualAP(Jnjvm* vm, UserClass*, JavaObject* obj, va_list ap)
+  sint64 invokeLongVirtualAP(UserClass*, JavaObject* obj, va_list ap)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectVirtualAP(Jnjvm* vm, UserClass*, JavaObject* obj,
+  JavaObject* invokeJavaObjectVirtualAP(UserClass*, JavaObject* obj,
                                         va_list ap) __attribute__ ((noinline));
   
-  uint32 invokeIntStaticAP(Jnjvm* vm, UserClass*, va_list ap)
+  uint32 invokeIntStaticAP(UserClass*, va_list ap)
     __attribute__ ((noinline));
-  float invokeFloatStaticAP(Jnjvm* vm, UserClass*, va_list ap)
+  float invokeFloatStaticAP(UserClass*, va_list ap)
     __attribute__ ((noinline));
-  double invokeDoubleStaticAP(Jnjvm* vm, UserClass*, va_list ap)
+  double invokeDoubleStaticAP(UserClass*, va_list ap)
     __attribute__ ((noinline));
-  sint64 invokeLongStaticAP(Jnjvm* vm, UserClass*, va_list ap)
+  sint64 invokeLongStaticAP(UserClass*, va_list ap)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectStaticAP(Jnjvm* vm, UserClass*, va_list ap)
+  JavaObject* invokeJavaObjectStaticAP(UserClass*, va_list ap)
     __attribute__ ((noinline));
 
   /// This class of methods takes a buffer which contain the arguments of the
   /// call.
-  uint32 invokeIntSpecialBuf(Jnjvm* vm, UserClass*, JavaObject* obj, void* buf)
+  uint32 invokeIntSpecialBuf(UserClass*, JavaObject* obj, void* buf)
     __attribute__ ((noinline));
-  float invokeFloatSpecialBuf(Jnjvm* vm, UserClass*, JavaObject* obj, void* buf)
+  float invokeFloatSpecialBuf(UserClass*, JavaObject* obj, void* buf)
     __attribute__ ((noinline));
-  double invokeDoubleSpecialBuf(Jnjvm* vm, UserClass*, JavaObject* obj,
+  double invokeDoubleSpecialBuf(UserClass*, JavaObject* obj,
                                 void* buf) __attribute__ ((noinline));
-  sint64 invokeLongSpecialBuf(Jnjvm* vm, UserClass*, JavaObject* obj, void* buf)
+  sint64 invokeLongSpecialBuf(UserClass*, JavaObject* obj, void* buf)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectSpecialBuf(Jnjvm* vm, UserClass*, JavaObject* obj,
+  JavaObject* invokeJavaObjectSpecialBuf(UserClass*, JavaObject* obj,
                                          void* buf) __attribute__ ((noinline));
   
-  uint32 invokeIntVirtualBuf(Jnjvm* vm, UserClass*, JavaObject* obj, void* buf)
+  uint32 invokeIntVirtualBuf(UserClass*, JavaObject* obj, void* buf)
     __attribute__ ((noinline));
-  float invokeFloatVirtualBuf(Jnjvm* vm, UserClass*, JavaObject* obj, void* buf)
+  float invokeFloatVirtualBuf(UserClass*, JavaObject* obj, void* buf)
     __attribute__ ((noinline));
-  double invokeDoubleVirtualBuf(Jnjvm* vm, UserClass*, JavaObject* obj,
+  double invokeDoubleVirtualBuf(UserClass*, JavaObject* obj,
                                 void* buf) __attribute__ ((noinline));
-  sint64 invokeLongVirtualBuf(Jnjvm* vm, UserClass*, JavaObject* obj, void* buf)
+  sint64 invokeLongVirtualBuf(UserClass*, JavaObject* obj, void* buf)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectVirtualBuf(Jnjvm* vm, UserClass*, JavaObject* obj,
+  JavaObject* invokeJavaObjectVirtualBuf(UserClass*, JavaObject* obj,
                                          void* buf) __attribute__ ((noinline));
   
-  uint32 invokeIntStaticBuf(Jnjvm* vm, UserClass*, void* buf)
+  uint32 invokeIntStaticBuf(UserClass*, void* buf)
     __attribute__ ((noinline));
-  float invokeFloatStaticBuf(Jnjvm* vm, UserClass*, void* buf)
+  float invokeFloatStaticBuf(UserClass*, void* buf)
     __attribute__ ((noinline));
-  double invokeDoubleStaticBuf(Jnjvm* vm, UserClass*, void* buf)
+  double invokeDoubleStaticBuf(UserClass*, void* buf)
     __attribute__ ((noinline));
-  sint64 invokeLongStaticBuf(Jnjvm* vm, UserClass*, void* buf)
+  sint64 invokeLongStaticBuf(UserClass*, void* buf)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectStaticBuf(Jnjvm* vm, UserClass*, void* buf)
+  JavaObject* invokeJavaObjectStaticBuf(UserClass*, void* buf)
     __attribute__ ((noinline));
 
   /// This class of methods is variadic.
-  uint32 invokeIntSpecial(Jnjvm* vm, UserClass*, JavaObject* obj, ...)
+  uint32 invokeIntSpecial(UserClass*, JavaObject* obj, ...)
     __attribute__ ((noinline));
-  float invokeFloatSpecial(Jnjvm* vm, UserClass*, JavaObject* obj, ...)
+  float invokeFloatSpecial(UserClass*, JavaObject* obj, ...)
     __attribute__ ((noinline));
-  double invokeDoubleSpecial(Jnjvm* vm, UserClass*, JavaObject* obj, ...)
+  double invokeDoubleSpecial(UserClass*, JavaObject* obj, ...)
     __attribute__ ((noinline));
-  sint64 invokeLongSpecial(Jnjvm* vm, UserClass*, JavaObject* obj, ...)
+  sint64 invokeLongSpecial(UserClass*, JavaObject* obj, ...)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectSpecial(Jnjvm* vm, UserClass*, JavaObject* obj,
+  JavaObject* invokeJavaObjectSpecial(UserClass*, JavaObject* obj,
                                       ...) __attribute__ ((noinline));
   
-  uint32 invokeIntVirtual(Jnjvm* vm, UserClass*, JavaObject* obj, ...)
+  uint32 invokeIntVirtual(UserClass*, JavaObject* obj, ...)
     __attribute__ ((noinline));
-  float invokeFloatVirtual(Jnjvm* vm, UserClass*, JavaObject* obj, ...)
+  float invokeFloatVirtual(UserClass*, JavaObject* obj, ...)
     __attribute__ ((noinline));
-  double invokeDoubleVirtual(Jnjvm* vm, UserClass*, JavaObject* obj, ...)
+  double invokeDoubleVirtual(UserClass*, JavaObject* obj, ...)
     __attribute__ ((noinline));
-  sint64 invokeLongVirtual(Jnjvm* vm, UserClass*, JavaObject* obj, ...)
+  sint64 invokeLongVirtual(UserClass*, JavaObject* obj, ...)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectVirtual(Jnjvm* vm, UserClass*, JavaObject* obj,
+  JavaObject* invokeJavaObjectVirtual(UserClass*, JavaObject* obj,
                                       ...) __attribute__ ((noinline));
   
-  uint32 invokeIntStatic(Jnjvm* vm, UserClass*, ...)
+  uint32 invokeIntStatic(UserClass*, ...)
     __attribute__ ((noinline));
-  float invokeFloatStatic(Jnjvm* vm, UserClass*, ...)
+  float invokeFloatStatic(UserClass*, ...)
     __attribute__ ((noinline));
-  double invokeDoubleStatic(Jnjvm* vm, UserClass*, ...)
+  double invokeDoubleStatic(UserClass*, ...)
     __attribute__ ((noinline));
-  sint64 invokeLongStatic(Jnjvm* vm, UserClass*, ...)
+  sint64 invokeLongStatic(UserClass*, ...)
     __attribute__ ((noinline));
-  JavaObject* invokeJavaObjectStatic(Jnjvm* vm, UserClass*, ...)
+  JavaObject* invokeJavaObjectStatic(UserClass*, ...)
     __attribute__ ((noinline));
   
   #define JNI_NAME_PRE "Java_"
@@ -1176,7 +1176,7 @@
   /// InitStaticField - Init the value of the field in the given object. This is
   /// used for static fields which have a default value.
   ///
-  void InitStaticField(Jnjvm* vm);
+  void InitStaticField();
 
   /// lookupAttribut - Look up the attribut in the field's list of attributs.
   ///

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaMetaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaMetaJIT.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaMetaJIT.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaMetaJIT.cpp Wed Dec  8 07:00:22 2010
@@ -77,38 +77,38 @@
 #if 1 // VA_ARGS do not work on all platforms for LLVM.
 #define INVOKE_AP(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
 \
-TYPE JavaMethod::invoke##TYPE_NAME##VirtualAP(Jnjvm* vm, UserClass* cl, JavaObject* obj, va_list ap) { \
+TYPE JavaMethod::invoke##TYPE_NAME##VirtualAP(UserClass* cl, JavaObject* obj, va_list ap) { \
   llvm_gcroot(obj, 0); \
   verifyNull(obj); \
   Signdef* sign = getSignature(); \
   mvm::ThreadAllocator allocator; \
   jvalue* buf = (jvalue*)allocator.Allocate(sign->nbArguments * sizeof(jvalue)); \
   readArgs(buf, sign, ap, jni); \
-  return invoke##TYPE_NAME##VirtualBuf(vm, cl, obj, buf); \
+  return invoke##TYPE_NAME##VirtualBuf(cl, obj, buf); \
 }\
 \
-TYPE JavaMethod::invoke##TYPE_NAME##SpecialAP(Jnjvm* vm, UserClass* cl, JavaObject* obj, va_list ap) {\
+TYPE JavaMethod::invoke##TYPE_NAME##SpecialAP(UserClass* cl, JavaObject* obj, va_list ap) {\
   llvm_gcroot(obj, 0); \
   verifyNull(obj); \
   Signdef* sign = getSignature(); \
   mvm::ThreadAllocator allocator; \
   jvalue* buf = (jvalue*)allocator.Allocate(sign->nbArguments * sizeof(jvalue)); \
   readArgs(buf, sign, ap, jni); \
-  return invoke##TYPE_NAME##SpecialBuf(vm, cl, obj, buf); \
+  return invoke##TYPE_NAME##SpecialBuf(cl, obj, buf); \
 }\
 \
-TYPE JavaMethod::invoke##TYPE_NAME##StaticAP(Jnjvm* vm, UserClass* cl, va_list ap) {\
+TYPE JavaMethod::invoke##TYPE_NAME##StaticAP(UserClass* cl, va_list ap) {\
   Signdef* sign = getSignature(); \
   mvm::ThreadAllocator allocator; \
   jvalue* buf = (jvalue*)allocator.Allocate(sign->nbArguments * sizeof(jvalue)); \
   readArgs(buf, sign, ap, jni); \
-  return invoke##TYPE_NAME##StaticBuf(vm, cl, buf); \
+  return invoke##TYPE_NAME##StaticBuf(cl, buf); \
 }
 
 #else
 
 #define INVOKE_AP(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
-TYPE JavaMethod::invoke##TYPE_NAME##VirtualAP(Jnjvm* vm, UserClass* cl, JavaObject* obj, va_list ap) { \
+TYPE JavaMethod::invoke##TYPE_NAME##VirtualAP(UserClass* cl, JavaObject* obj, va_list ap) { \
   llvm_gcroot(obj, 0); \
   verifyNull(obj); \
   UserClass* objCl = JavaObject::getClass(obj)->isArray() ? JavaObject::getClass(obj)->super : JavaObject::getClass(obj)->asClass(); \
@@ -131,7 +131,7 @@
   return res; \
 }\
 \
-TYPE JavaMethod::invoke##TYPE_NAME##SpecialAP(Jnjvm* vm, UserClass* cl, JavaObject* obj, va_list ap) {\
+TYPE JavaMethod::invoke##TYPE_NAME##SpecialAP(UserClass* cl, JavaObject* obj, va_list ap) {\
   llvm_gcroot(obj, 0); \
   verifyNull(obj);\
   void* func = this->compiledPtr();\
@@ -147,10 +147,10 @@
   return res; \
 }\
 \
-TYPE JavaMethod::invoke##TYPE_NAME##StaticAP(Jnjvm* vm, UserClass* cl, va_list ap) {\
+TYPE JavaMethod::invoke##TYPE_NAME##StaticAP(UserClass* cl, va_list ap) {\
   if (!cl->isReady()) { \
     cl->resolveClass(); \
-    cl->initialiseClass(vm); \
+    cl->initialiseClass(); \
   } \
   \
   void* func = this->compiledPtr();\
@@ -169,7 +169,7 @@
 #endif
 
 #define INVOKE_BUF(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
-TYPE JavaMethod::invoke##TYPE_NAME##VirtualBuf(Jnjvm* vm, UserClass* cl, JavaObject* obj, void* buf) {\
+TYPE JavaMethod::invoke##TYPE_NAME##VirtualBuf(UserClass* cl, JavaObject* obj, void* buf) {\
   llvm_gcroot(obj, 0); \
   verifyNull(obj);\
   Signdef* sign = getSignature(); \
@@ -193,7 +193,7 @@
   th->endJava(); \
   return res; \
 }\
-TYPE JavaMethod::invoke##TYPE_NAME##SpecialBuf(Jnjvm* vm, UserClass* cl, JavaObject* obj, void* buf) {\
+TYPE JavaMethod::invoke##TYPE_NAME##SpecialBuf(UserClass* cl, JavaObject* obj, void* buf) {\
   llvm_gcroot(obj, 0); \
   verifyNull(obj);\
   void* func = this->compiledPtr();\
@@ -209,10 +209,10 @@
   return res; \
 }\
 \
-TYPE JavaMethod::invoke##TYPE_NAME##StaticBuf(Jnjvm* vm, UserClass* cl, void* buf) {\
+TYPE JavaMethod::invoke##TYPE_NAME##StaticBuf(UserClass* cl, void* buf) {\
   if (!cl->isReady()) { \
     cl->resolveClass(); \
-    cl->initialiseClass(vm); \
+    cl->initialiseClass(); \
   } \
   \
   void* func = this->compiledPtr();\
@@ -229,28 +229,28 @@
 }\
 
 #define INVOKE_VA(TYPE, TYPE_NAME, FUNC_TYPE_VIRTUAL_AP, FUNC_TYPE_STATIC_AP, FUNC_TYPE_VIRTUAL_BUF, FUNC_TYPE_STATIC_BUF) \
-TYPE JavaMethod::invoke##TYPE_NAME##Virtual(Jnjvm* vm, UserClass* cl, JavaObject* obj, ...) { \
+TYPE JavaMethod::invoke##TYPE_NAME##Virtual(UserClass* cl, JavaObject* obj, ...) { \
   llvm_gcroot(obj, 0); \
   va_list ap;\
   va_start(ap, obj);\
-  TYPE res = invoke##TYPE_NAME##VirtualAP(vm, cl, obj, ap);\
+  TYPE res = invoke##TYPE_NAME##VirtualAP(cl, obj, ap);\
   va_end(ap); \
   return res; \
 }\
 \
-TYPE JavaMethod::invoke##TYPE_NAME##Special(Jnjvm* vm, UserClass* cl, JavaObject* obj, ...) {\
+TYPE JavaMethod::invoke##TYPE_NAME##Special(UserClass* cl, JavaObject* obj, ...) {\
   llvm_gcroot(obj, 0); \
   va_list ap;\
   va_start(ap, obj);\
-  TYPE res = invoke##TYPE_NAME##SpecialAP(vm, cl, obj, ap);\
+  TYPE res = invoke##TYPE_NAME##SpecialAP(cl, obj, ap);\
   va_end(ap); \
   return res; \
 }\
 \
-TYPE JavaMethod::invoke##TYPE_NAME##Static(Jnjvm* vm, UserClass* cl, ...) {\
+TYPE JavaMethod::invoke##TYPE_NAME##Static(UserClass* cl, ...) {\
   va_list ap;\
   va_start(ap, cl);\
-  TYPE res = invoke##TYPE_NAME##StaticAP(vm, cl, ap);\
+  TYPE res = invoke##TYPE_NAME##StaticAP(cl, ap);\
   va_end(ap); \
   return res; \
 }\

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp Wed Dec  8 07:00:22 2010
@@ -152,7 +152,7 @@
     vm->illegalArgumentException("");
   } else {
     UserCommonClass* cl = getClass(obj);
-    UserClassPrimitive* value = cl->toPrimitive(vm);
+    UserClassPrimitive* value = cl->toPrimitive();
     const PrimitiveTypedef* prim = (const PrimitiveTypedef*)signature;
 
     if (value == 0) {

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaRuntimeJIT.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaRuntimeJIT.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaRuntimeJIT.cpp Wed Dec  8 07:00:22 2010
@@ -118,7 +118,7 @@
     JavaField* field = cl->asClass()->lookupField(utf8, sign->keyName, true,
                                                   true, &fieldCl);
     
-    fieldCl->initialiseClass(JavaThread::get()->getJVM());
+    fieldCl->initialiseClass();
     void* obj = ((UserClass*)fieldCl)->getStaticInstance();
   
     assert(obj && "No static instance in static field lookup");
@@ -216,7 +216,7 @@
   BEGIN_NATIVE_EXCEPTION(1)
  
   cl->resolveClass();
-  cl->initialiseClass(JavaThread::get()->getJVM());
+  cl->initialiseClass();
   
   END_NATIVE_EXCEPTION
 
@@ -231,8 +231,7 @@
   llvm_gcroot(res, 0);
 
   BEGIN_NATIVE_EXCEPTION(1)
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  res = cl->getClassDelegatee(vm);
+  res = cl->getClassDelegatee();
   END_NATIVE_EXCEPTION
   
 	hack_check(JavaObject*);
@@ -241,11 +240,10 @@
 }
 
 // Throws if one of the dimension is negative.
-JavaObject* multiCallNewIntern(UserClassArray* cl, uint32 len,
-                               sint32* dims, Jnjvm* vm) {
+JavaObject* multiCallNewIntern(UserClassArray* cl, uint32 len, sint32* dims) {
   assert(len > 0 && "Negative size given by VMKit");
  
-  JavaObject* _res = cl->doNew(dims[0], vm);
+  JavaObject* _res = cl->doNew(dims[0]);
   ArrayObject* res = NULL;
   JavaObject* temp = NULL;
   llvm_gcroot(_res, 0);
@@ -259,14 +257,14 @@
     UserClassArray* base = (UserClassArray*)_base;
     if (dims[0] > 0) {
       for (sint32 i = 0; i < dims[0]; ++i) {
-        temp = multiCallNewIntern(base, (len - 1), &dims[1], vm);
+        temp = multiCallNewIntern(base, (len - 1), &dims[1]);
         ArrayObject::setElement(res, temp, i);
       }
     } else {
       for (uint32 i = 1; i < len; ++i) {
         sint32 p = dims[i];
         if (p < 0) {
-          JavaThread::get()->getJVM()->negativeArraySizeException(p);
+          cl->classLoader->vm->negativeArraySizeException(p);
         }
       }
     }
@@ -288,9 +286,8 @@
   for (uint32 i = 0; i < len; ++i){
     dims[i] = va_arg(ap, int);
   }
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  res = multiCallNewIntern(cl, len, dims, vm);
-
+  res = multiCallNewIntern(cl, len, dims);
+	
   END_NATIVE_EXCEPTION
 
   return res;
@@ -687,7 +684,7 @@
     lookup->lookupSpecialMethodDontThrow(utf8, sign->keyName, caller->classDef);
   
   if (!callee) {
-		JavaThread::j3Thread(mut)->getJVM()->noSuchMethodError(lookup, utf8);
+		cl->classLoader->vm->noSuchMethodError(lookup, utf8);
   }
 
   // Compile the found method.

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp Wed Dec  8 07:00:22 2010
@@ -27,7 +27,7 @@
   llvm_gcroot(res, 0);
 
   UserClass* cl = vm->upcalls->newString;
-  res = (JavaString*)cl->doNew(vm);
+  res = (JavaString*)cl->doNew();
   
   // It's a hashed string, set the destructor so that the string
   // removes itself from the vm string map. Do this only if
@@ -80,7 +80,7 @@
 
   assert(getValue(self) && "String without an array?");
   if (self->offset || (self->count != ArrayUInt16::getSize(getValue(self)))) {
-    array = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(self->count, vm);
+    array = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(self->count);
     for (sint32 i = 0; i < self->count; i++) {
       ArrayUInt16::setElement(
           array, ArrayUInt16::getElement(value, i + self->offset), i);
@@ -107,7 +107,7 @@
   ArrayUInt16* array = 0;
   llvm_gcroot(array, 0);
 
-  array = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(name->size, vm);
+  array = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(name->size);
   
   for (sint32 i = 0; i < name->size; i++) {
     uint16 cur = name->elements[i];

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp Wed Dec  8 07:00:22 2010
@@ -26,14 +26,13 @@
   return JavaThread::get()->getJVM();
 }
 
-UserClass* getClassFromStaticMethod(Jnjvm* vm, JavaMethod* meth,
+UserClass* getClassFromStaticMethod(JavaMethod* meth,
                                     JavaObject* clazz) {
   llvm_gcroot(clazz, 0);
   return meth->classDef;
 }
 
-static UserClass* getClassFromVirtualMethod(Jnjvm* vm, 
-                                            JavaMethod* meth,
+static UserClass* getClassFromVirtualMethod(JavaMethod* meth,
                                             UserCommonClass* cl) {
   return meth->classDef;
 }
@@ -67,9 +66,9 @@
   UserCommonClass* cl = loader->loadClassFromAsciiz(asciiz, true, true);
   if (cl && cl->asClass()) {
     assert(cl->asClass()->isResolved());
-    cl->asClass()->initialiseClass(vm);
+    cl->asClass()->initialiseClass();
   }
-  jclass res = (jclass)cl->getClassDelegateePtr(vm);
+  jclass res = (jclass)cl->getClassDelegateePtr();
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -85,9 +84,9 @@
   JavaObject* meth = *(JavaObject**)method;
   llvm_gcroot(meth, 0);
 
-  Jnjvm* vm = myVM(env);
-  Classpath* upcalls = vm->upcalls;
   UserCommonClass* cl = JavaObject::getClass(meth);
+  Jnjvm* vm = cl->classLoader->vm;
+  Classpath* upcalls = vm->upcalls;
   if (cl == upcalls->newConstructor)  {
     jmethodID res = (jmethodID)JavaObjectMethod::getInternalMethod((JavaObjectMethod*)meth);
     RETURN_FROM_JNI(res);
@@ -118,11 +117,10 @@
   llvm_gcroot(sub, 0);
   llvm_gcroot(sup, 0);
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserCommonClass* cl2 = 
-    UserCommonClass::resolvedImplClass(vm, sup, false);
+    UserCommonClass::resolvedImplClass(sup, false);
   UserCommonClass* cl1 = 
-    UserCommonClass::resolvedImplClass(vm, sub, false);
+    UserCommonClass::resolvedImplClass(sub, false);
 
   jboolean res = (jboolean)cl1->isAssignableFrom(cl2);
   RETURN_FROM_JNI(res);
@@ -155,16 +153,16 @@
   Jnjvm* vm = JavaThread::get()->getJVM();
   
   verifyNull(Cl);
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, true);
   if (!cl->isClass()) RETURN_FROM_JNI(0);
 
   UserClass* realCl = cl->asClass();
-  res = realCl->doNew(vm);
+  res = realCl->doNew();
   JavaMethod* init = realCl->lookupMethod(vm->upcalls->initName,
                                           vm->upcalls->initExceptionSig,
                                           false, true, 0);
   str = vm->asciizToStr(msg);
-  init->invokeIntSpecial(vm, realCl, res, &str);
+  init->invokeIntSpecial(realCl, res, &str);
 	mut->setPendingException(res);
   
   RETURN_FROM_JNI(1);
@@ -267,13 +265,12 @@
   llvm_gcroot(res, 0);
 
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
 
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(clazz, true);
   if (!cl->isClass()) RETURN_FROM_JNI(0);
 
   // Store local reference
-  res = cl->asClass()->doNew(vm);
+  res = cl->asClass()->doNew();
  
   jobject ret = (jobject)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
@@ -295,16 +292,15 @@
   
   JavaMethod* meth = (JavaMethod*)methodID;
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(clazz, true);
   if (!cl->isClass()) RETURN_FROM_JNI(0);
   
   // Store local reference
-  res = cl->asClass()->doNew(vm);
+  res = cl->asClass()->doNew();
 
   va_list ap;
   va_start(ap, methodID);
-  meth->invokeIntSpecialAP(vm, cl->asClass(), res, ap);
+  meth->invokeIntSpecialAP(cl->asClass(), res, ap);
   va_end(ap);
  
   jobject ret = (jobject)th->pushJNIRef(res);
@@ -334,14 +330,13 @@
   llvm_gcroot(res, 0);
 
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
   JavaMethod* meth = (JavaMethod*)methodID;
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(clazz, true);
   
   // Store local reference
-  res = cl->asClass()->doNew(vm);
+  res = cl->asClass()->doNew();
 
-  meth->invokeIntSpecialBuf(vm, cl->asClass(), res, (void*)args);
+  meth->invokeIntSpecialBuf(cl->asClass(), res, (void*)args);
 
   jobject ret = (jobject)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
@@ -359,11 +354,8 @@
   JavaObject* obj = *(JavaObject**)_obj;
   llvm_gcroot(obj, 0);
 
-  JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  
   // Store local reference
-  jclass res = (jclass)JavaObject::getClass(obj)->getClassDelegateePtr(vm);
+  jclass res = (jclass)JavaObject::getClass(obj)->getClassDelegateePtr();
   RETURN_FROM_JNI(res);
   
   END_JNI_EXCEPTION
@@ -410,8 +402,7 @@
   JavaObject* clazz = *(JavaObject**)_clazz;
   llvm_gcroot(clazz, 0);
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(clazz, true);
 
   UserClass* realCl = cl->isClass() ? cl->asClass() : cl->super;
 
@@ -446,10 +437,9 @@
   
   JavaMethod* meth = (JavaMethod*)methodID;
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
   
-  res = meth->invokeJavaObjectVirtualAP(vm, cl, obj, ap);
+  res = meth->invokeJavaObjectVirtualAP(cl, obj, ap);
   va_end(ap);
 
   jobject ret = (jobject)th->pushJNIRef(res);
@@ -475,11 +465,10 @@
   
   JavaMethod* meth = (JavaMethod*)methodID;
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
   
   // Store local reference.
-  res = meth->invokeJavaObjectVirtualAP(vm, cl, obj, args);
+  res = meth->invokeJavaObjectVirtualAP(cl, obj, args);
   
   jobject ret = (jobject)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
@@ -512,11 +501,10 @@
   llvm_gcroot(self, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
   UserClass* cl =
-      getClassFromVirtualMethod(vm, meth, JavaObject::getClass(self));
+      getClassFromVirtualMethod(meth, JavaObject::getClass(self));
   
-  uint32 res = meth->invokeIntVirtualAP(vm, cl, self, ap);
+  uint32 res = meth->invokeIntVirtualAP(cl, self, ap);
   va_end(ap);
 
   RETURN_FROM_JNI(res);
@@ -538,9 +526,8 @@
   llvm_gcroot(obj, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jboolean res = (jboolean)meth->invokeIntVirtualAP(vm, cl, obj, args);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jboolean res = (jboolean)meth->invokeIntVirtualAP(cl, obj, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -575,9 +562,8 @@
   llvm_gcroot(obj, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jbyte res = (jbyte)meth->invokeIntVirtualAP(vm, cl, obj, args);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jbyte res = (jbyte)meth->invokeIntVirtualAP(cl, obj, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -613,9 +599,8 @@
   llvm_gcroot(obj, 0);
  
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jchar res = (jchar)meth->invokeIntVirtualAP(vm, cl, obj, args);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jchar res = (jchar)meth->invokeIntVirtualAP(cl, obj, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -651,9 +636,8 @@
   llvm_gcroot(obj, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jshort res = (jshort)meth->invokeIntVirtualAP(vm, cl, obj, args);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jshort res = (jshort)meth->invokeIntVirtualAP(cl, obj, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -685,10 +669,9 @@
   llvm_gcroot(obj, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
   
-  uint32 res = meth->invokeIntVirtualAP(vm, cl, obj, ap);
+  uint32 res = meth->invokeIntVirtualAP(cl, obj, ap);
   va_end(ap);
   
   RETURN_FROM_JNI(res);
@@ -710,10 +693,9 @@
   llvm_gcroot(obj, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
   
-  jint res = (jint)meth->invokeIntVirtualAP(vm, cl, obj, args);
+  jint res = (jint)meth->invokeIntVirtualAP(cl, obj, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -750,9 +732,8 @@
   llvm_gcroot(obj, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jlong res = (jlong)meth->invokeLongVirtualAP(vm, cl, obj, args);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jlong res = (jlong)meth->invokeLongVirtualAP(cl, obj, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -784,9 +765,8 @@
   llvm_gcroot(obj, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jfloat res = meth->invokeFloatVirtualAP(vm, cl, obj, ap);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jfloat res = meth->invokeFloatVirtualAP(cl, obj, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -807,9 +787,8 @@
   llvm_gcroot(obj, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jfloat res = (jfloat)meth->invokeFloatVirtualAP(vm, cl, obj, args);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jfloat res = (jfloat)meth->invokeFloatVirtualAP(cl, obj, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -841,9 +820,8 @@
   llvm_gcroot(obj, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jdouble res = meth->invokeDoubleVirtualAP(vm, cl, obj, ap);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jdouble res = meth->invokeDoubleVirtualAP(cl, obj, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -864,9 +842,8 @@
   llvm_gcroot(obj, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  jdouble res = (jdouble)meth->invokeDoubleVirtualAP(vm, cl, obj, args);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  jdouble res = (jdouble)meth->invokeDoubleVirtualAP(cl, obj, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -898,9 +875,8 @@
   llvm_gcroot(obj, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  meth->invokeIntVirtualAP(vm, cl, obj, ap);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  meth->invokeIntVirtualAP(cl, obj, ap);
   va_end(ap);
 
   RETURN_VOID_FROM_JNI;
@@ -923,9 +899,8 @@
   llvm_gcroot(obj, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  meth->invokeIntVirtualAP(vm, cl, obj, args);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  meth->invokeIntVirtualAP(cl, obj, args);
   
   RETURN_VOID_FROM_JNI;
 
@@ -946,10 +921,9 @@
   llvm_gcroot(obj, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
   
-  meth->invokeIntVirtualBuf(vm, cl, obj, (void*)args);
+  meth->invokeIntVirtualBuf(cl, obj, (void*)args);
 
   RETURN_VOID_FROM_JNI;
 
@@ -1199,9 +1173,8 @@
   llvm_gcroot(obj, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromVirtualMethod(vm, meth, JavaObject::getClass(obj));
-  meth->invokeIntSpecialAP(vm, cl, obj, ap);
+  UserClass* cl = getClassFromVirtualMethod(meth, JavaObject::getClass(obj));
+  meth->invokeIntSpecialAP(cl, obj, ap);
   va_end(ap);
   
   RETURN_VOID_FROM_JNI;
@@ -1235,8 +1208,7 @@
   JavaObject* clazz = *(JavaObject**)_clazz;
   llvm_gcroot(clazz, 0);
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(clazz, true);
 
   if (cl->isClass()) {
     const UTF8* name = cl->classLoader->hashUTF8->lookupAsciiz(aname);
@@ -1599,8 +1571,7 @@
   JavaObject* clazz = *(JavaObject**)_clazz;
   llvm_gcroot(clazz, 0);
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(clazz, true);
 
   if (cl->isClass()) {
     const UTF8* name = cl->classLoader->hashUTF8->lookupAsciiz(aname);
@@ -1636,11 +1607,10 @@
 
   JavaMethod* meth = (JavaMethod*)methodID;
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
   
   // Store local reference.
-  res = meth->invokeJavaObjectStaticAP(vm, cl, ap);
+  res = meth->invokeJavaObjectStaticAP(cl, ap);
   va_end(ap);
   
   jobject ret = (jobject)th->pushJNIRef(res);
@@ -1663,11 +1633,10 @@
   
   JavaMethod* meth = (JavaMethod*)methodID;
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
   
   // Store local reference.
-  res = meth->invokeJavaObjectStaticAP(vm, cl, args);
+  res = meth->invokeJavaObjectStaticAP(cl, args);
 
   jobject ret = (jobject)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
@@ -1698,9 +1667,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  uint32 res = meth->invokeIntStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  uint32 res = meth->invokeIntStaticAP(cl, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -1719,9 +1687,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jboolean res = (jboolean)meth->invokeIntStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jboolean res = (jboolean)meth->invokeIntStaticAP(cl, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1748,9 +1715,8 @@
   va_list ap;
   va_start(ap, methodID);
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jbyte res = (jbyte) meth->invokeIntStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jbyte res = (jbyte) meth->invokeIntStaticAP(cl, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -1769,9 +1735,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jbyte res = (jbyte)meth->invokeIntStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jbyte res = (jbyte)meth->invokeIntStaticAP(cl, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1799,9 +1764,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jchar res = (jchar) meth->invokeIntStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jchar res = (jchar) meth->invokeIntStaticAP(cl, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -1819,9 +1783,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jchar res = (jchar)meth->invokeIntStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jchar res = (jchar)meth->invokeIntStaticAP(cl, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1850,9 +1813,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jshort res = (jshort) meth->invokeIntStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jshort res = (jshort) meth->invokeIntStaticAP(cl, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -1871,9 +1833,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jshort res = (jshort)meth->invokeIntStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jshort res = (jshort)meth->invokeIntStaticAP(cl, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1901,9 +1862,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jint res = (jint) meth->invokeIntStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jint res = (jint) meth->invokeIntStaticAP(cl, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -1921,9 +1881,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jint res = (jint)meth->invokeIntStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jint res = (jint)meth->invokeIntStaticAP(cl, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -1952,9 +1911,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jlong res = (jlong) meth->invokeLongStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jlong res = (jlong) meth->invokeLongStaticAP(cl, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -1973,9 +1931,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jlong res = (jlong)meth->invokeLongStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jlong res = (jlong)meth->invokeLongStaticAP(cl, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2006,9 +1963,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jfloat res = (jfloat) meth->invokeFloatStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jfloat res = (jfloat) meth->invokeFloatStaticAP(cl, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -2027,9 +1983,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jfloat res = (jfloat)meth->invokeFloatStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jfloat res = (jfloat)meth->invokeFloatStaticAP(cl, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2059,9 +2014,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jdouble res = (jdouble) meth->invokeDoubleStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jdouble res = (jdouble) meth->invokeDoubleStaticAP(cl, ap);
   va_end(ap);
   RETURN_FROM_JNI(res);
 
@@ -2079,9 +2033,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  jdouble res = (jdouble)meth->invokeDoubleStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  jdouble res = (jdouble)meth->invokeDoubleStaticAP(cl, args);
   RETURN_FROM_JNI(res);
 
   END_JNI_EXCEPTION
@@ -2110,9 +2063,8 @@
   llvm_gcroot(clazz, 0);
 
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  meth->invokeIntStaticAP(vm, cl, ap);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  meth->invokeIntStaticAP(cl, ap);
   va_end(ap);
 
   RETURN_VOID_FROM_JNI;
@@ -2133,9 +2085,8 @@
   llvm_gcroot(clazz, 0);
   
   JavaMethod* meth = (JavaMethod*)methodID;
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = getClassFromStaticMethod(vm, meth, clazz);
-  meth->invokeIntStaticAP(vm, cl, args);
+  UserClass* cl = getClassFromStaticMethod(meth, clazz);
+  meth->invokeIntStaticAP(cl, args);
   
   RETURN_VOID_FROM_JNI;
 
@@ -2161,8 +2112,7 @@
   JavaObject* clazz = *(JavaObject**)_clazz;
   llvm_gcroot(clazz, 0);
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, clazz, true);
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(clazz, true);
   
   if (cl->isClass()) {
     const UTF8* name = cl->classLoader->hashUTF8->lookupAsciiz(aname);
@@ -2560,12 +2510,12 @@
   if (length < 0) vm->negativeArraySizeException(length);
   
   UserCommonClass* base =
-    UserCommonClass::resolvedImplClass(vm, elementClass, true);
+    UserCommonClass::resolvedImplClass(elementClass, true);
   JnjvmClassLoader* loader = base->classLoader;
   const UTF8* name = base->getName();
   const UTF8* arrayName = loader->constructArrayName(1, name);
   UserClassArray* array = loader->constructArray(arrayName, base);
-  res = (ArrayObject*)array->doNew(length, vm);
+  res = (ArrayObject*)array->doNew(length);
   
   if (initialElement) {
     for (sint32 i = 0; i < length; ++i) {
@@ -2645,7 +2595,7 @@
   
   JavaThread* th = JavaThread::get();
   Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfBool->doNew(len, vm);
+  res = vm->upcalls->ArrayOfBool->doNew(len);
   jbooleanArray ret = (jbooleanArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2664,7 +2614,7 @@
 
   JavaThread* th = JavaThread::get();
   Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfByte->doNew(len, vm);
+  res = vm->upcalls->ArrayOfByte->doNew(len);
   jbyteArray ret = (jbyteArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2682,7 +2632,7 @@
   
   JavaThread* th = JavaThread::get();
   Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfChar->doNew(len, vm);
+  res = vm->upcalls->ArrayOfChar->doNew(len);
   jcharArray ret = (jcharArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2700,7 +2650,7 @@
   
   JavaThread* th = JavaThread::get();
   Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfShort->doNew(len, vm);
+  res = vm->upcalls->ArrayOfShort->doNew(len);
   jshortArray ret = (jshortArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2718,7 +2668,7 @@
   
   JavaThread* th = JavaThread::get();
   Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfInt->doNew(len, vm);
+  res = vm->upcalls->ArrayOfInt->doNew(len);
   jintArray ret = (jintArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2736,7 +2686,7 @@
   
   JavaThread* th = JavaThread::get();
   Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfLong->doNew(len, vm);
+  res = vm->upcalls->ArrayOfLong->doNew(len);
   jlongArray ret = (jlongArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2754,7 +2704,7 @@
   
   JavaThread* th = JavaThread::get();
   Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfFloat->doNew(len, vm);
+  res = vm->upcalls->ArrayOfFloat->doNew(len);
   jfloatArray ret = (jfloatArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2772,7 +2722,7 @@
   
   JavaThread* th = JavaThread::get();
   Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfDouble->doNew(len, vm);
+  res = vm->upcalls->ArrayOfDouble->doNew(len);
   jdoubleArray ret = (jdoubleArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -3600,19 +3550,19 @@
   Jnjvm* myvm = th->getJVM();
   UserClass* BB = myvm->upcalls->newDirectByteBuffer;
 
-  res = BB->doNew(myvm);
+  res = BB->doNew();
 
 #if (__WORDSIZE == 32)
   UserClass* PP = myvm->upcalls->newPointer32;
-  p = PP->doNew(myvm);
+  p = PP->doNew();
   myvm->upcalls->dataPointer32->setInstanceInt32Field(p, (uint32)address);
 #else
   UserClass* PP = myvm->upcalls->newPointer64;
-  p = PP->doNew(myvm);
+  p = PP->doNew();
   myvm->upcalls->dataPointer64->setInstanceLongField(p, (jlong)address);
 #endif
 
-  myvm->upcalls->InitDirectByteBuffer->invokeIntSpecial(myvm, BB, res, 0, &p,
+  myvm->upcalls->InitDirectByteBuffer->invokeIntSpecial(BB, res, 0, &p,
                                                         (uint32)capacity,
                                                         (uint32)capacity, 0);
 

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/Jnjvm.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/Jnjvm.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/Jnjvm.cpp Wed Dec  8 07:00:22 2010
@@ -45,7 +45,7 @@
 
 /// initialiseClass - Java class initialisation. Java specification §2.17.5.
 
-void UserClass::initialiseClass(Jnjvm* vm) {
+void UserClass::initialiseClass() {
 	mvm::gc* exc = NULL;
   JavaObject* obj = NULL;
 	JavaObject* jexc;
@@ -111,7 +111,7 @@
     //    NoClassDefFoundError.
     if (isErroneous()) {
       release();
-      vm->noClassDefFoundError(name);
+      classLoader->vm->noClassDefFoundError(name);
     }
 
     // 6. Otherwise, record the fact that initialization of the Class object is
@@ -125,7 +125,7 @@
     // Single environment allocates the static instance during resolution, so
     // that compiled code can access it directly (with an initialization
     // check just before the access)
-    if (!cl->getStaticInstance()) cl->allocateStaticInstance(vm);
+    if (!cl->getStaticInstance()) cl->allocateStaticInstance();
 
     release();
   
@@ -141,7 +141,7 @@
     UserClass* super = getSuper();
     if (super) {
       TRY {
-        super->initialiseClass(vm);
+        super->initialiseClass();
       } CATCH {
         acquire();
         setErroneous();
@@ -171,19 +171,19 @@
     if (!vmjced) {
       JavaField* fields = cl->getStaticFields();
       for (uint32 i = 0; i < cl->nbStaticFields; ++i) {
-        fields[i].InitStaticField(vm);
+        fields[i].InitStaticField();
       }
     }
   
       
-      
-    JavaMethod* meth = lookupMethodDontThrow(vm->upcalls->clinitName,
-                                             vm->upcalls->clinitType,
+		
+    JavaMethod* meth = lookupMethodDontThrow(classLoader->vm->upcalls->clinitName,
+                                             classLoader->vm->upcalls->clinitType,
                                              true, false, 0);
 
     if (meth) {
       TRY {
-        meth->invokeIntStatic(vm, cl);
+        meth->invokeIntStatic(cl);
       } CATCH {
         exc = mut->getPendingException();
         assert(exc && "no exception?");
@@ -212,17 +212,16 @@
     //     OutOfMemoryError occurs, then instead use an OutOfMemoryError object
     //     in place of E in the following step.
 		jexc = Jnjvm::asJavaException(exc);
-    if (jexc && JavaObject::getClass(jexc)->isAssignableFrom(vm->upcalls->newException)) {
-      Classpath* upcalls = vm->upcalls;
+    if (jexc && JavaObject::getClass(jexc)->isAssignableFrom(classLoader->vm->upcalls->newException)) {
+      Classpath* upcalls = classLoader->vm->upcalls;
       UserClass* clExcp = upcalls->ExceptionInInitializerError;
-      Jnjvm* vm = JavaThread::get()->getJVM();
-      obj = clExcp->doNew(vm);
+      obj = clExcp->doNew();
       if (obj == NULL) {
         fprintf(stderr, "implement me");
         abort();
       }
       JavaMethod* init = upcalls->ErrorWithExcpExceptionInInitializerError;
-      init->invokeIntSpecial(vm, clExcp, obj, &exc);
+      init->invokeIntSpecial(clExcp, obj, &exc);
       exc = obj;
     } 
 
@@ -245,8 +244,8 @@
   llvm_gcroot(obj, 0);
   llvm_gcroot(excp, 0);
 
-  obj = cl->doNew(this);
-  init->invokeIntSpecial(this, cl, obj, &excp);
+  obj = cl->doNew();
+  init->invokeIntSpecial(cl, obj, &excp);
   mvm::Thread::get()->setPendingException(obj)->throwIt();
 }
 
@@ -256,11 +255,11 @@
   JavaString* str = NULL;
   llvm_gcroot(obj, 0);
   llvm_gcroot(str, 0);
-  obj = cl->doNew(this);
+  obj = cl->doNew();
 
   if (asciiz) str = asciizToStr(asciiz);
 
-  init->invokeIntSpecial(this, cl, obj, &str);
+  init->invokeIntSpecial(cl, obj, &str);
   return obj;
 }
 
@@ -269,8 +268,8 @@
   JavaObject* obj = NULL;
   llvm_gcroot(str, 0);
   llvm_gcroot(obj, 0);
-  obj = cl->doNew(this);
-  init->invokeIntSpecial(this, cl, obj, &str);
+  obj = cl->doNew();
+  init->invokeIntSpecial(cl, obj, &str);
   return obj;
 }
 
@@ -292,7 +291,7 @@
   llvm_gcroot(obj, 0);
   llvm_gcroot(str, 0);
   str = (JavaString*)upcalls->IntToString->invokeJavaObjectStatic(
-      this, upcalls->intClass, entry, 10);
+      upcalls->intClass, entry, 10);
   error(upcalls->ArrayIndexOutOfBoundsException,
         upcalls->InitArrayIndexOutOfBoundsException, str);
 }
@@ -301,7 +300,7 @@
   JavaString* str = NULL;
   llvm_gcroot(str, 0);
   str = (JavaString*)
-    upcalls->IntToString->invokeJavaObjectStatic(this, upcalls->intClass,
+    upcalls->IntToString->invokeJavaObjectStatic(upcalls->intClass,
                                                  size, 10);
   error(upcalls->NegativeArraySizeException,
         upcalls->InitNegativeArraySizeException, str);
@@ -316,7 +315,7 @@
   JavaString* str = NULL;
   llvm_gcroot(str, 0);
   str = (JavaString*)
-    upcalls->IntToString->invokeJavaObjectStatic(this, upcalls->intClass,
+    upcalls->IntToString->invokeJavaObjectStatic(upcalls->intClass,
                                                  entry, 10);
   return CreateError(upcalls->ArrayIndexOutOfBoundsException,
                      upcalls->InitArrayIndexOutOfBoundsException, str);
@@ -363,7 +362,7 @@
   // Don't call init, or else we'll get a new stack overflow error.
   JavaObject* obj = NULL;
   llvm_gcroot(obj, 0);
-  obj = upcalls->StackOverflowError->doNew(this);
+  obj = upcalls->StackOverflowError->doNew();
   JavaObjectThrowable::fillInStackTrace((JavaObjectThrowable*)obj);
   return obj;
 }
@@ -482,7 +481,7 @@
   llvm_gcroot(msg, 0);
   llvm_gcroot(str, 0);
   msg = (ArrayUInt16*)
-    vm->upcalls->ArrayOfChar->doNew(19 + cl->name->size + name->size, vm);
+    vm->upcalls->ArrayOfChar->doNew(19 + cl->name->size + name->size);
 
   uint32 i = 0;
 
@@ -558,7 +557,7 @@
   llvm_gcroot(msg, 0);
   llvm_gcroot(str, 0);
 
-  msg = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(15 + name->size, vm);
+  msg = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(15 + name->size);
   uint32 i = 0;
 
 
@@ -597,7 +596,7 @@
   llvm_gcroot(msg, 0);
   llvm_gcroot(str, 0);
 
-  msg = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(15 + name->count, vm);
+  msg = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(15 + name->count);
   uint32 i = 0;
 
   ArrayUInt16::setElement(msg, 'u', i); i++;
@@ -654,7 +653,7 @@
   llvm_gcroot(str, 0);
 
   uint32 size = 35 + name->size + cl->name->size;
-  msg = (ArrayUInt16*)upcalls->ArrayOfChar->doNew(size, this);
+  msg = (ArrayUInt16*)upcalls->ArrayOfChar->doNew(size);
   uint32 i = 0;
 
 
@@ -729,7 +728,7 @@
   ArrayUInt16* tmp = NULL;
   llvm_gcroot(tmp, 0);
   uint32 size = utf8->size;
-  tmp = (ArrayUInt16*)upcalls->ArrayOfChar->doNew(size, this);
+  tmp = (ArrayUInt16*)upcalls->ArrayOfChar->doNew(size);
   
   for (uint32 i = 0; i < size; i++) {
     ArrayUInt16::setElement(tmp, utf8->elements[i], i);
@@ -760,7 +759,7 @@
 }
 
 // Mimic what's happening in Classpath when creating a java.lang.Class object.
-JavaObject* UserCommonClass::getClassDelegatee(Jnjvm* vm, JavaObject* pd) {
+JavaObject* UserCommonClass::getClassDelegatee(JavaObject* pd) {
   JavaObjectClass* delegatee = 0;
   JavaObjectClass* base = 0;
   llvm_gcroot(pd, 0);
@@ -768,12 +767,12 @@
   llvm_gcroot(base, 0);
 
   if (getDelegatee() == NULL) {
-    UserClass* cl = vm->upcalls->newClass;
-    delegatee = (JavaObjectClass*)cl->doNew(vm);
+    UserClass* cl = classLoader->vm->upcalls->newClass;
+    delegatee = (JavaObjectClass*)cl->doNew();
     JavaObjectClass::setClass(delegatee, this);
     if (pd == NULL && isArray()) {
       base = (JavaObjectClass*)
-        asArrayClass()->baseClass()->getClassDelegatee(vm, pd);
+        asArrayClass()->baseClass()->getClassDelegatee(pd);
       JavaObjectClass::setProtectionDomain(
         delegatee, JavaObjectClass::getProtectionDomain(base));
     } else {
@@ -784,10 +783,10 @@
   return getDelegatee();
 }
 
-JavaObject* const* UserCommonClass::getClassDelegateePtr(Jnjvm* vm, JavaObject* pd) {
+JavaObject* const* UserCommonClass::getClassDelegateePtr(JavaObject* pd) {
   llvm_gcroot(pd, 0);
   // Make sure it's created.
-  getClassDelegatee(vm, pd);
+  getClassDelegatee(pd);
   return getDelegateePtr();
 }
 
@@ -1047,7 +1046,7 @@
   
   if (appClassLoader == NULL) {
     UserClass* cl = upcalls->newClassLoader;
-    loader = upcalls->getSystemClassLoader->invokeJavaObjectStatic(this, cl);
+    loader = upcalls->getSystemClassLoader->invokeJavaObjectStatic(cl);
     appClassLoader = JnjvmClassLoader::getJnjvmLoaderFromJavaObject(loader,
                                                                     this);
     if (argumentsInfo.jarFile) {
@@ -1083,7 +1082,7 @@
   
 #define LOAD_CLASS(cl) \
   cl->resolveClass(); \
-  cl->initialiseClass(this);
+  cl->initialiseClass();
   
   // If a string belongs to the vm hashmap, we must remove it when
   // it's destroyed. So we define a new VT for strings that will be
@@ -1106,7 +1105,7 @@
     JavaString::internStringVT->operatorDelete = 
       (uintptr_t)JavaString::stringDestructor;
   }
-  upcalls->newString->initialiseClass(this);
+  upcalls->newString->initialiseClass();
 
   // The initialization code of the classes initialized below may require
   // to get the Java thread, so we create the Java thread object first.
@@ -1166,13 +1165,13 @@
   obj = JavaThread::get()->currentThread();
   javaLoader = appClassLoader->getJavaClassLoader();
 
-  upcalls->setContextClassLoader->invokeIntSpecial(this, upcalls->newThread,
+  upcalls->setContextClassLoader->invokeIntSpecial(upcalls->newThread,
                                                    obj, &javaLoader);
   // load and initialise math since it is responsible for dlopen'ing 
   // libjavalang.so and we are optimizing some math operations
   UserCommonClass* math = loader->loadName(
       loader->asciizConstructUTF8("java/lang/Math"), true, true, NULL);
-  math->asClass()->initialiseClass(this);
+  math->asClass()->initialiseClass();
 }
 
 void Jnjvm::executeClass(const char* className, ArrayObject* args) {
@@ -1195,14 +1194,14 @@
       cl = (UserClass*)appClassLoader->loadName(name, true, true, NULL);
     }
     
-    cl->initialiseClass(this);
+    cl->initialiseClass();
   
     const UTF8* funcSign = 
       appClassLoader->asciizConstructUTF8("([Ljava/lang/String;)V");
     const UTF8* funcName = appClassLoader->asciizConstructUTF8("main");
     JavaMethod* method = cl->lookupMethod(funcName, funcSign, true, true, 0);
     if (isPublic(method->access)) { 
-      method->invokeIntStatic(this, method->classDef, &args);
+      method->invokeIntStatic(method->classDef, &args);
     } else {
       fprintf(stderr, "Main method not public.\n");
     }
@@ -1218,7 +1217,7 @@
     obj = th->currentThread();
     group = upcalls->group->getInstanceObjectField(obj);
     TRY {
-      upcalls->uncaughtException->invokeIntSpecial(this, upcalls->threadGroup,
+      upcalls->uncaughtException->invokeIntSpecial(upcalls->threadGroup,
                                                    group, &obj, &exc);
     } CATCH {
       fprintf(stderr, "Exception in thread \"main\": "
@@ -1235,14 +1234,14 @@
     const UTF8* name = appClassLoader->asciizConstructUTF8(className);
     UserClass* cl = (UserClass*)
         appClassLoader->loadName(name, true, true, NULL);
-    cl->initialiseClass(this);
+    cl->initialiseClass();
   
     const UTF8* funcSign = appClassLoader->asciizConstructUTF8(
       "(Ljava/lang/String;Ljava/lang/instrument/Instrumentation;)V");
     const UTF8* funcName = appClassLoader->asciizConstructUTF8("premain");
     JavaMethod* method = cl->lookupMethod(funcName, funcSign, true, true, 0);
   
-    method->invokeIntStatic(this, method->classDef, &args, &instrumenter);
+    method->invokeIntStatic(method->classDef, &args, &instrumenter);
   } IGNORE;
 }
 
@@ -1309,7 +1308,7 @@
     }
     
     UserClassArray* array = vm->upcalls->ArrayOfString;
-    args = (ArrayObject*)array->doNew(info.argc - 2, vm);
+    args = (ArrayObject*)array->doNew(info.argc - 2);
     for (int i = 2; i < info.argc; ++i) {
       ArrayObject::setElement(args, (JavaObject*)vm->asciizToStr(info.argv[i]), i - 2);
     }
@@ -1379,7 +1378,7 @@
   llvm_gcroot(tmp, 0);
 
   uint32 size = strlen(asciiz);
-  tmp = (ArrayUInt16*)upcalls->ArrayOfChar->doNew(size, this);
+  tmp = (ArrayUInt16*)upcalls->ArrayOfChar->doNew(size);
   
   for (uint32 i = 0; i < size; i++) {
     ArrayUInt16::setElement(tmp, asciiz[i], i);
@@ -1395,7 +1394,7 @@
 
   JavaMethod* meth = upcalls->FinalizeObject;
   UserClass* cl = JavaObject::getClass(obj)->asClass();
-  meth->invokeIntVirtualBuf(this, cl, obj, 0);
+  meth->invokeIntVirtualBuf(cl, obj, 0);
 }
 
 mvm::gc** Jnjvm::getReferent(mvm::gc* _obj) {
@@ -1418,7 +1417,7 @@
   llvm_gcroot(obj, 0);
   JavaMethod* meth = upcalls->EnqueueReference;
   UserClass* cl = JavaObject::getClass(obj)->asClass();
-  return (bool)meth->invokeIntSpecialBuf(this, cl, obj, 0);
+  return (bool)meth->invokeIntSpecialBuf(cl, obj, 0);
 }
   
 size_t Jnjvm::getObjectSize(mvm::gc* object) {

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp Wed Dec  8 07:00:22 2010
@@ -174,9 +174,9 @@
   if (!cl) {
     UserClass* forCtp = loadClass;
     if (strName == NULL) {
-      strName = JavaString::internalToJava(name, isolate);
+      strName = JavaString::internalToJava(name, vm);
     }
-    obj = loadClassMethod->invokeJavaObjectVirtual(isolate, forCtp, javaLoader,
+    obj = loadClassMethod->invokeJavaObjectVirtual(forCtp, javaLoader,
                                                    &strName);
     cl = JavaObjectClass::getClass(((JavaObjectClass*)obj));
   }
@@ -752,14 +752,6 @@
 JavaString** JnjvmClassLoader::UTF8ToStr(const UTF8* val) {
   JavaString* res = NULL;
   llvm_gcroot(res, 0);
-  res = isolate->internalUTF8ToStr(val);
-  return strings->addString(this, res);
-}
-
-JavaString** JnjvmBootstrapLoader::UTF8ToStr(const UTF8* val) {
-  JavaString* res = NULL;
-  llvm_gcroot(res, 0);
-  Jnjvm* vm = JavaThread::get()->getJVM();
   res = vm->internalUTF8ToStr(val);
   return strings->addString(this, res);
 }

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h Wed Dec  8 07:00:22 2010
@@ -353,8 +353,6 @@
   ///
   JnjvmBootstrapLoader(mvm::BumpPtrAllocator& Alloc, Jnjvm* vm, JavaCompiler* Comp);
   
-  virtual JavaString** UTF8ToStr(const UTF8* utf8);
-
   /// nativeHandle - Non-null handle if boot classes were static compiled in
   /// a dynamic library
   ///

Modified: vmkit/branches/multi-vm/lib/Mvm/Runtime/SystemThreads.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/Mvm/Runtime/SystemThreads.cpp?rev=121249&r1=121248&r2=121249&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/Mvm/Runtime/SystemThreads.cpp (original)
+++ vmkit/branches/multi-vm/lib/Mvm/Runtime/SystemThreads.cpp Wed Dec  8 07:00:22 2010
@@ -222,7 +222,7 @@
   llvm_gcroot(obj, 0);
   TRY {
 		llvm_gcroot(obj, 0);
-		VirtualMachine* vm = obj->getVirtualTable()->vm; //JavaThread::get()->getJVM();
+		VirtualMachine* vm = obj->getVirtualTable()->vm;
 		mvm::Thread::get()->attach(vm);
 		vm->finalizeObject(obj);
   } IGNORE;





More information about the vmkit-commits mailing list