[vmkit-commits] [vmkit] r120464 - in /vmkit/branches/multi-vm: ./ lib/J3/VMCore/JnjvmClassLoader.cpp lib/J3/VMCore/JnjvmClassLoader.h lib/J3/VMCore/VirtualTables.cpp mmtk/java/ mmtk/java/build.xml

Gael Thomas gael.thomas at lip6.fr
Tue Nov 30 13:31:15 PST 2010


Author: gthomas
Date: Tue Nov 30 15:31:15 2010
New Revision: 120464

URL: http://llvm.org/viewvc/llvm-project?rev=120464&view=rev
Log:
merge trunk inside multi-vm

Added:
    vmkit/branches/multi-vm/mmtk/java/build.xml
      - copied unchanged from r120456, vmkit/trunk/mmtk/java/build.xml
Modified:
    vmkit/branches/multi-vm/   (props changed)
    vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h
    vmkit/branches/multi-vm/lib/J3/VMCore/VirtualTables.cpp
    vmkit/branches/multi-vm/mmtk/java/   (props changed)

Propchange: vmkit/branches/multi-vm/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Nov 30 15:31:15 2010
@@ -1,3 +1,3 @@
 /vmkit/branches/precise:112509-120199
 /vmkit/branches/release_028:115466-116298
-/vmkit/trunk:120068-120292
+/vmkit/trunk:120068-120292,120425-120456

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=120464&r1=120463&r2=120464&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp Tue Nov 30 15:31:15 2010
@@ -260,8 +260,10 @@
 
 JnjvmClassLoader::JnjvmClassLoader(mvm::BumpPtrAllocator& Alloc,
                                    JnjvmClassLoader& JCL, JavaObject* loader,
+                                   VMClassLoader* vmdata,
                                    Jnjvm* I) : allocator(Alloc) {
   llvm_gcroot(loader, 0);
+  llvm_gcroot(vmdata, 0);
   bootstrapLoader = JCL.bootstrapLoader;
   TheCompiler = bootstrapLoader->getCompiler()->Create("Applicative loader");
   
@@ -271,6 +273,7 @@
   javaSignatures = new(allocator, "SignMap") SignMap();
   strings = new(allocator, "StringList") StringList();
 
+  vmdata->JCL = this;
   javaLoader = loader;
   isolate = I;
 
@@ -886,15 +889,16 @@
     vmdata = 
       (VMClassLoader*)(upcalls->vmdataClassLoader->getInstanceObjectField(loader));
     if (!vmdata) {
-      mvm::BumpPtrAllocator* A = new mvm::BumpPtrAllocator();    
+      vmdata = VMClassLoader::allocate();
+      mvm::BumpPtrAllocator* A = new mvm::BumpPtrAllocator();
       JCL = new(*A, "Class loader") JnjvmClassLoader(*A, *vm->bootstrapLoader,
-                                                     loader, vm);
-      vmdata = VMClassLoader::allocate(JCL);
+                                                     loader, vmdata, vm);
       upcalls->vmdataClassLoader->setInstanceObjectField(loader, (JavaObject*)vmdata);
     }
     JavaObject::release(loader);
   } else {
     JCL = vmdata->getClassLoader();
+    assert(JCL->javaLoader == loader);
   }
 
   return JCL;

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=120464&r1=120463&r2=120464&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.h Tue Nov 30 15:31:15 2010
@@ -44,6 +44,7 @@
 class StringList;
 class Typedef;
 class TypeMap;
+class VMClassLoader;
 class ZipArchive;
 
 
@@ -77,7 +78,7 @@
   /// first use of a Java class loader.
   ///
   JnjvmClassLoader(mvm::BumpPtrAllocator& Alloc, JnjvmClassLoader& JCL,
-                   JavaObject* loader, Jnjvm* isolate);
+                   JavaObject* loader, VMClassLoader* vmdata, Jnjvm* isolate);
 
   /// 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
@@ -443,11 +444,10 @@
 
 public:
 
-  static VMClassLoader* allocate(JnjvmClassLoader* J) {
+  static VMClassLoader* allocate() {
     VMClassLoader* res = 0;
     llvm_gcroot(res, 0);
     res = (VMClassLoader*)gc::operator new(sizeof(VMClassLoader), &VT);
-    res->JCL = J;
     return res;
   }
 
@@ -479,16 +479,13 @@
     }
   }
 
-  /// VMClassLoader - Default constructors.
-  ///
-  VMClassLoader(JnjvmClassLoader* J) : JCL(J) {}
-
   /// getClassLoader - Get the internal class loader.
   ///
   JnjvmClassLoader* getClassLoader() {
     return JCL;
   }
 
+  friend class JnjvmClassLoader;
 };
 
 #define MAXIMUM_STRINGS 100

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/VirtualTables.cpp?rev=120464&r1=120463&r2=120464&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/VirtualTables.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/VirtualTables.cpp Tue Nov 30 15:31:15 2010
@@ -222,6 +222,8 @@
     }
     end = end->prev;
   }
+  
+  mvm::Collector::markAndTraceRoot(&javaLoader, closure);
 }
 
 void JnjvmBootstrapLoader::tracer(uintptr_t closure) {

Propchange: vmkit/branches/multi-vm/mmtk/java/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Nov 30 15:31:15 2010
@@ -1,5 +1,4 @@
 mmtk-vmkit.bc
 mmtk-vmkit-optimized.bc
 mmtk-vmkit.jar
-build.xml
 classes





More information about the vmkit-commits mailing list