[vmkit-commits] [vmkit] r121148 - in /vmkit/branches/multi-vm/lib/J3/VMCore: Jnjvm.cpp JnjvmClassLoader.cpp JnjvmClassLoader.h

Gael Thomas gael.thomas at lip6.fr
Tue Dec 7 08:37:39 PST 2010


Author: gthomas
Date: Tue Dec  7 10:37:39 2010
New Revision: 121148

URL: http://llvm.org/viewvc/llvm-project?rev=121148&view=rev
Log:
a class loader holds now a pointer to its vm

Modified:
    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

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=121148&r1=121147&r2=121148&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/Jnjvm.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/Jnjvm.cpp Tue Dec  7 10:37:39 2010
@@ -1343,7 +1343,7 @@
 	VirtualMachine(Alloc, vmkit), 
 	lockSystem(Alloc) {
 
-  bootstrapLoader = new(Alloc, "bootstrap loader") JnjvmBootstrapLoader(Alloc, Comp, dlLoad);
+  bootstrapLoader = new(Alloc, "bootstrap loader") JnjvmBootstrapLoader(Alloc, this, Comp, dlLoad);
 	bootstrapLoader->isolate = this;
 
 	initialiseInternalVTs();

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=121148&r1=121147&r2=121148&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp Tue Dec  7 10:37:39 2010
@@ -61,9 +61,10 @@
 
 
 JnjvmBootstrapLoader::JnjvmBootstrapLoader(mvm::BumpPtrAllocator& Alloc,
+																					 Jnjvm* vm,
                                            JavaCompiler* Comp, 
                                            bool dlLoad) : 
-    JnjvmClassLoader(Alloc) {
+	JnjvmClassLoader(Alloc, vm) {
   
 	TheCompiler = Comp;
   
@@ -262,9 +263,13 @@
 JnjvmClassLoader::JnjvmClassLoader(mvm::BumpPtrAllocator& Alloc,
                                    JnjvmClassLoader& JCL, JavaObject* loader,
                                    VMClassLoader* vmdata,
-                                   Jnjvm* I) : allocator(Alloc) {
+                                   Jnjvm* I,
+																	 Jnjvm* v) : allocator(Alloc) {
   llvm_gcroot(loader, 0);
   llvm_gcroot(vmdata, 0);
+
+	vm = v;
+
   bootstrapLoader = JCL.bootstrapLoader;
   TheCompiler = bootstrapLoader->getCompiler()->Create("Applicative loader");
   
@@ -872,7 +877,7 @@
       vmdata = VMClassLoader::allocate(vm);
       mvm::BumpPtrAllocator* A = new mvm::BumpPtrAllocator();
       JCL = new(*A, "Class loader") JnjvmClassLoader(*A, *vm->bootstrapLoader,
-                                                     loader, vmdata, vm);
+                                                     loader, vmdata, vm, vm);
       upcalls->vmdataClassLoader->setInstanceObjectField(loader, (JavaObject*)vmdata);
     }
     JavaObject::release(loader);

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=121148&r1=121147&r2=121148&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h Tue Dec  7 10:37:39 2010
@@ -58,6 +58,10 @@
   ///
   Jnjvm* isolate;
 
+  /// vm - my vm
+  ///
+  Jnjvm* vm;
+
   /// javaLoder - The Java representation of the class loader. Null for the
   /// bootstrap class loader.
   ///
@@ -77,7 +81,7 @@
   /// first use of a Java class loader.
   ///
   JnjvmClassLoader(mvm::BumpPtrAllocator& Alloc, JnjvmClassLoader& JCL,
-                   JavaObject* loader, VMClassLoader* vmdata, Jnjvm* isolate);
+                   JavaObject* loader, VMClassLoader* vmdata, Jnjvm* isolate, Jnjvm* vm);
 
   /// lookupComponentName - Try to find the component name of the given array
   /// name. If the component name is not in the table of UTF8s and holder
@@ -88,7 +92,7 @@
 protected:
   
 	friend class Jnjvm;
-  JnjvmClassLoader(mvm::BumpPtrAllocator& Alloc) : allocator(Alloc) {}
+  JnjvmClassLoader(mvm::BumpPtrAllocator& Alloc, Jnjvm* v) : allocator(Alloc) { vm = v; }
   
   /// TheCompiler - The Java compiler for this class loader.
   ///
@@ -352,8 +356,7 @@
   /// to do before any execution of a JVM. Also try to load libvmjc.so
   /// if dlLoad is not false.
   ///
-  JnjvmBootstrapLoader(mvm::BumpPtrAllocator& Alloc, JavaCompiler* Comp,
-                       bool dlLoad);
+  JnjvmBootstrapLoader(mvm::BumpPtrAllocator& Alloc, Jnjvm* vm, JavaCompiler* Comp, bool dlLoad);
   
   virtual JavaString** UTF8ToStr(const UTF8* utf8);
 





More information about the vmkit-commits mailing list