[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