[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