[vmkit-commits] [vmkit] r58188 - in /vmkit/trunk/lib/JnJVM: Classpath/Classpath.cpp Classpath/ClasspathVMRuntime.cpp VMCore/JavaClass.cpp VMCore/JavaInitialise.cpp VMCore/JavaJIT.cpp VMCore/Jni.cpp VMCore/Jnjvm.cpp VMCore/Jnjvm.h VMCore/JnjvmClassLoader.cpp VMCore/JnjvmClassLoader.h VMCore/JnjvmModule.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Oct 26 10:13:01 PDT 2008
Author: geoffray
Date: Sun Oct 26 12:12:59 2008
New Revision: 58188
URL: http://llvm.org/viewvc/llvm-project?rev=58188&view=rev
Log:
Move internal UTF8s used by JnJVM to the BootstrapClassLoader.
Modified:
vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaInitialise.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp
vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
Modified: vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp Sun Oct 26 12:12:59 2008
@@ -32,7 +32,8 @@
verifyNull(Cl);
Jnjvm* vm = JavaThread::get()->isolate;
UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, Cl, true);
- if (cl->lookupMethodDontThrow(Jnjvm::clinitName, Jnjvm::clinitType, true,
+ if (cl->lookupMethodDontThrow(vm->bootstrapLoader->clinitName,
+ vm->bootstrapLoader->clinitType, true,
false, 0))
return true;
Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathVMRuntime.cpp Sun Oct 26 12:12:59 2008
@@ -44,17 +44,18 @@
const UTF8* utf8Lib = strLib->value;
uint32 stLib = strLib->offset;
sint32 lgLib = strLib->count;
- sint32 lgPre = vm->prelib->size;
- sint32 lgPost = vm->postlib->size;
+ sint32 lgPre = vm->bootstrapLoader->prelib->size;
+ sint32 lgPost = vm->bootstrapLoader->postlib->size;
uint32 size = (uint32)(lgPre + lgLib + lgPost);
ArrayUInt16* array = (ArrayUInt16*)vm->upcalls->ArrayOfChar->doNew(size, vm);
uint16* elements = array->elements;
- memmove(elements, vm->prelib->elements, lgPre * sizeof(uint16));
+ memmove(elements, vm->bootstrapLoader->prelib->elements,
+ lgPre * sizeof(uint16));
memmove(&(elements[lgPre]), &(utf8Lib->elements[stLib]),
lgLib * sizeof(uint16));
- memmove(&(elements[lgPre + lgLib]), vm->postlib->elements,
+ memmove(&(elements[lgPre + lgLib]), vm->bootstrapLoader->postlib->elements,
lgPost * sizeof(uint16));
return (jobject)(vm->UTF8ToStr((const UTF8*)array));
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Sun Oct 26 12:12:59 2008
@@ -897,7 +897,8 @@
for (uint32 i = 0; i < nbVirtualMethods; ++i) {
JavaMethod* meth = &virtualMethods[i];
bool pub = isPublic(meth->access);
- if (meth->name->equals(Jnjvm::initName) && (!publicOnly || pub)) {
+ if (meth->name->equals(classLoader->bootstrapLoader->initName) &&
+ (!publicOnly || pub)) {
res.push_back(meth);
}
}
@@ -908,7 +909,8 @@
for (uint32 i = 0; i < nbVirtualMethods; ++i) {
JavaMethod* meth = &virtualMethods[i];
bool pub = isPublic(meth->access);
- if (!(meth->name->equals(Jnjvm::initName)) && (!publicOnly || pub)) {
+ if (!(meth->name->equals(classLoader->bootstrapLoader->initName)) &&
+ (!publicOnly || pub)) {
res.push_back(meth);
}
}
@@ -916,7 +918,8 @@
for (uint32 i = 0; i < nbStaticMethods; ++i) {
JavaMethod* meth = &staticMethods[i];
bool pub = isPublic(meth->access);
- if (!(meth->name->equals(Jnjvm::clinitName)) && (!publicOnly || pub)) {
+ if (!(meth->name->equals(classLoader->bootstrapLoader->clinitName)) &&
+ (!publicOnly || pub)) {
res.push_back(meth);
}
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaInitialise.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaInitialise.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaInitialise.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaInitialise.cpp Sun Oct 26 12:12:59 2008
@@ -183,23 +183,23 @@
Attribut::innerClassesAttribut = JCL->asciizConstructUTF8("InnerClasses");
Attribut::sourceFileAttribut = JCL->asciizConstructUTF8("SourceFile");
- Jnjvm::initName = JCL->asciizConstructUTF8("<init>");
- Jnjvm::clinitName = JCL->asciizConstructUTF8("<clinit>");
- Jnjvm::clinitType = JCL->asciizConstructUTF8("()V");
- Jnjvm::runName = JCL->asciizConstructUTF8("run");
- Jnjvm::prelib = JCL->asciizConstructUTF8("lib");
+ JCL->initName = JCL->asciizConstructUTF8("<init>");
+ JCL->clinitName = JCL->asciizConstructUTF8("<clinit>");
+ JCL->clinitType = JCL->asciizConstructUTF8("()V");
+ JCL->runName = JCL->asciizConstructUTF8("run");
+ JCL->prelib = JCL->asciizConstructUTF8("lib");
#if defined(__MACH__)
- Jnjvm::postlib = JCL->asciizConstructUTF8(".dylib");
+ JCL->postlib = JCL->asciizConstructUTF8(".dylib");
#else
- Jnjvm::postlib = JCL->asciizConstructUTF8(".so");
+ JCL->postlib = JCL->asciizConstructUTF8(".so");
#endif
- Jnjvm::mathName = JCL->asciizConstructUTF8("java/lang/Math");
- Jnjvm::stackWalkerName = JCL->asciizConstructUTF8("gnu/classpath/VMStackWalker");
- Jnjvm::NoClassDefFoundError =
+ JCL->mathName = JCL->asciizConstructUTF8("java/lang/Math");
+ JCL->stackWalkerName = JCL->asciizConstructUTF8("gnu/classpath/VMStackWalker");
+ JCL->NoClassDefFoundError =
JCL->asciizConstructUTF8("java/lang/NoClassDefFoundError");
#define DEF_UTF8(var) \
- Jnjvm::var = JCL->asciizConstructUTF8(#var)
+ JCL->var = JCL->asciizConstructUTF8(#var)
DEF_UTF8(abs);
DEF_UTF8(sqrt);
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Sun Oct 26 12:12:59 2008
@@ -1430,7 +1430,8 @@
Instruction* JavaJIT::lowerMathOps(const UTF8* name,
std::vector<Value*>& args) {
- if (name->equals(Jnjvm::abs)) {
+ JnjvmBootstrapLoader* loader = compilingClass->classLoader->bootstrapLoader;
+ if (name->equals(loader->abs)) {
const Type* Ty = args[0]->getType();
if (Ty == Type::Int32Ty) {
Constant* const_int32_9 = module->constantZero;
@@ -1464,71 +1465,71 @@
return llvm::CallInst::Create(module->func_llvm_fabs_f64, args[0],
"tmp1", currentBlock);
}
- } else if (name->equals(Jnjvm::sqrt)) {
+ } else if (name->equals(loader->sqrt)) {
return llvm::CallInst::Create(module->func_llvm_sqrt_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::sin)) {
+ } else if (name->equals(loader->sin)) {
return llvm::CallInst::Create(module->func_llvm_sin_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::cos)) {
+ } else if (name->equals(loader->cos)) {
return llvm::CallInst::Create(module->func_llvm_cos_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::tan)) {
+ } else if (name->equals(loader->tan)) {
return llvm::CallInst::Create(module->func_llvm_tan_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::asin)) {
+ } else if (name->equals(loader->asin)) {
return llvm::CallInst::Create(module->func_llvm_asin_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::acos)) {
+ } else if (name->equals(loader->acos)) {
return llvm::CallInst::Create(module->func_llvm_acos_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::atan)) {
+ } else if (name->equals(loader->atan)) {
return llvm::CallInst::Create(module->func_llvm_atan_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::atan2)) {
+ } else if (name->equals(loader->atan2)) {
return llvm::CallInst::Create(module->func_llvm_atan2_f64,
args.begin(), args.end(), "tmp1",
currentBlock);
- } else if (name->equals(Jnjvm::exp)) {
+ } else if (name->equals(loader->exp)) {
return llvm::CallInst::Create(module->func_llvm_exp_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::log)) {
+ } else if (name->equals(loader->log)) {
return llvm::CallInst::Create(module->func_llvm_log_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::pow)) {
+ } else if (name->equals(loader->pow)) {
return llvm::CallInst::Create(module->func_llvm_pow_f64, args.begin(),
args.end(), "tmp1", currentBlock);
- } else if (name->equals(Jnjvm::ceil)) {
+ } else if (name->equals(loader->ceil)) {
return llvm::CallInst::Create(module->func_llvm_ceil_f64, args[0], "tmp1",
currentBlock);
- } else if (name->equals(Jnjvm::floor)) {
+ } else if (name->equals(loader->floor)) {
return llvm::CallInst::Create(module->func_llvm_floor_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::rint)) {
+ } else if (name->equals(loader->rint)) {
return llvm::CallInst::Create(module->func_llvm_rint_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::cbrt)) {
+ } else if (name->equals(loader->cbrt)) {
return llvm::CallInst::Create(module->func_llvm_cbrt_f64, args[0], "tmp1",
currentBlock);
- } else if (name->equals(Jnjvm::cosh)) {
+ } else if (name->equals(loader->cosh)) {
return llvm::CallInst::Create(module->func_llvm_cosh_f64, args[0], "tmp1",
currentBlock);
- } else if (name->equals(Jnjvm::expm1)) {
+ } else if (name->equals(loader->expm1)) {
return llvm::CallInst::Create(module->func_llvm_expm1_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::hypot)) {
+ } else if (name->equals(loader->hypot)) {
return llvm::CallInst::Create(module->func_llvm_hypot_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::log10)) {
+ } else if (name->equals(loader->log10)) {
return llvm::CallInst::Create(module->func_llvm_log10_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::log1p)) {
+ } else if (name->equals(loader->log1p)) {
return llvm::CallInst::Create(module->func_llvm_log1p_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::sinh)) {
+ } else if (name->equals(loader->sinh)) {
return llvm::CallInst::Create(module->func_llvm_sinh_f64, args[0],
"tmp1", currentBlock);
- } else if (name->equals(Jnjvm::tanh)) {
+ } else if (name->equals(loader->tanh)) {
return llvm::CallInst::Create(module->func_llvm_tanh_f64, args[0],
"tmp1", currentBlock);
}
@@ -1567,7 +1568,7 @@
makeArgs(it, index, args, signature->args.size() + 1);
JITVerifyNull(args[0]);
- if (cl->equals(Jnjvm::mathName)) {
+ if (cl->equals(compilingClass->classLoader->bootstrapLoader->mathName)) {
val = lowerMathOps(name, args);
}
@@ -1636,11 +1637,12 @@
makeArgs(it, index, args, signature->args.size());
ctpInfo->markAsStaticCall(index);
- if (cl->equals(Jnjvm::mathName)) {
+ JnjvmBootstrapLoader* loader = compilingClass->classLoader->bootstrapLoader;
+ if (cl->equals(loader->mathName)) {
val = lowerMathOps(name, args);
}
- if (cl->equals(Jnjvm::stackWalkerName)) {
+ if (cl->equals(loader->stackWalkerName)) {
callsStackWalker = true;
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp Sun Oct 26 12:12:59 2008
@@ -158,7 +158,7 @@
UserCommonClass* cl = NativeUtil::resolvedImplClass(vm, clazz, true);
if (cl->isArray()) assert(0 && "implement me");
JavaObject* res = ((UserClass*)cl)->doNew(vm);
- JavaMethod* init = cl->lookupMethod(Jnjvm::initName,
+ JavaMethod* init = cl->lookupMethod(vm->bootstrapLoader->initName,
cl->classLoader->asciizConstructUTF8("(Ljava/lang/String;)V"),
false, true, 0);
init->invokeIntSpecial(vm, (UserClass*)cl, res, vm->asciizToStr(msg));
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp Sun Oct 26 12:12:59 2008
@@ -40,45 +40,6 @@
using namespace jnjvm;
-#define DEF_UTF8(var) \
- const UTF8* Jnjvm::var = 0
-
- DEF_UTF8(NoClassDefFoundError);
- DEF_UTF8(initName);
- DEF_UTF8(clinitName);
- DEF_UTF8(clinitType);
- DEF_UTF8(runName);
- DEF_UTF8(prelib);
- DEF_UTF8(postlib);
- DEF_UTF8(mathName);
- DEF_UTF8(stackWalkerName);
- DEF_UTF8(abs);
- DEF_UTF8(sqrt);
- DEF_UTF8(sin);
- DEF_UTF8(cos);
- DEF_UTF8(tan);
- DEF_UTF8(asin);
- DEF_UTF8(acos);
- DEF_UTF8(atan);
- DEF_UTF8(atan2);
- DEF_UTF8(exp);
- DEF_UTF8(log);
- DEF_UTF8(pow);
- DEF_UTF8(ceil);
- DEF_UTF8(floor);
- DEF_UTF8(rint);
- DEF_UTF8(cbrt);
- DEF_UTF8(cosh);
- DEF_UTF8(expm1);
- DEF_UTF8(hypot);
- DEF_UTF8(log10);
- DEF_UTF8(log1p);
- DEF_UTF8(sinh);
- DEF_UTF8(tanh);
- DEF_UTF8(finalize);
-
-#undef DEF_UTF8
-
const char* Jnjvm::dirSeparator = "/";
const char* Jnjvm::envSeparator = ":";
const unsigned int Jnjvm::Magic = 0xcafebabe;
@@ -113,9 +74,9 @@
cl->resolveStaticClass();
status = inClinit;
- JavaMethod* meth = lookupMethodDontThrow(Jnjvm::clinitName,
- Jnjvm::clinitType, true,
- false, 0);
+ JavaMethod* meth = lookupMethodDontThrow(vm->bootstrapLoader->clinitName,
+ vm->bootstrapLoader->clinitType,
+ true, false, 0);
PRINT_DEBUG(JNJVM_LOAD, 0, COLOR_NORMAL, "; ", 0);
PRINT_DEBUG(JNJVM_LOAD, 0, LIGHT_GREEN, "clinit ", 0);
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h Sun Oct 26 12:12:59 2008
@@ -173,41 +173,6 @@
/// Magic - The magic number at the beginning of each .class file. 0xcafebabe.
///
static const unsigned int Magic;
-
- /// Lists of UTF8s used internaly in VMKit.
- static const UTF8* NoClassDefFoundError;
- static const UTF8* initName;
- static const UTF8* clinitName;
- static const UTF8* clinitType;
- static const UTF8* runName;
- static const UTF8* prelib;
- static const UTF8* postlib;
- static const UTF8* mathName;
- static const UTF8* stackWalkerName;
- static const UTF8* abs;
- static const UTF8* sqrt;
- static const UTF8* sin;
- static const UTF8* cos;
- static const UTF8* tan;
- static const UTF8* asin;
- static const UTF8* acos;
- static const UTF8* atan;
- static const UTF8* atan2;
- static const UTF8* exp;
- static const UTF8* log;
- static const UTF8* pow;
- static const UTF8* ceil;
- static const UTF8* floor;
- static const UTF8* rint;
- static const UTF8* cbrt;
- static const UTF8* cosh;
- static const UTF8* expm1;
- static const UTF8* hypot;
- static const UTF8* log10;
- static const UTF8* log1p;
- static const UTF8* sinh;
- static const UTF8* tanh;
- static const UTF8* finalize;
/// bootstraLoader - Bootstrap loader for base classes of this virtual
/// machine.
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Sun Oct 26 12:12:59 2008
@@ -166,7 +166,7 @@
if (!cl && doThrow) {
Jnjvm* vm = JavaThread::get()->isolate;
- if (!(name->equals(Jnjvm::NoClassDefFoundError))) {
+ if (!(name->equals(bootstrapLoader->NoClassDefFoundError))) {
vm->unknownError("Unable to load NoClassDefFoundError");
}
vm->noClassDefFoundError("unable to load %s", name->printString());
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h Sun Oct 26 12:12:59 2008
@@ -291,6 +291,43 @@
ISOLATE_STATIC UserClass** InterfacesArray;
ISOLATE_STATIC UserClass* SuperArray;
+
+
+ /// Lists of UTF8s used internaly in VMKit.
+ const UTF8* NoClassDefFoundError;
+ const UTF8* initName;
+ const UTF8* clinitName;
+ const UTF8* clinitType;
+ const UTF8* runName;
+ const UTF8* prelib;
+ const UTF8* postlib;
+ const UTF8* mathName;
+ const UTF8* stackWalkerName;
+ const UTF8* abs;
+ const UTF8* sqrt;
+ const UTF8* sin;
+ const UTF8* cos;
+ const UTF8* tan;
+ const UTF8* asin;
+ const UTF8* acos;
+ const UTF8* atan;
+ const UTF8* atan2;
+ const UTF8* exp;
+ const UTF8* log;
+ const UTF8* pow;
+ const UTF8* ceil;
+ const UTF8* floor;
+ const UTF8* rint;
+ const UTF8* cbrt;
+ const UTF8* cosh;
+ const UTF8* expm1;
+ const UTF8* hypot;
+ const UTF8* log10;
+ const UTF8* log1p;
+ const UTF8* sinh;
+ const UTF8* tanh;
+ const UTF8* finalize;
+
};
} // end namespace jnjvm
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=58188&r1=58187&r2=58188&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Sun Oct 26 12:12:59 2008
@@ -232,7 +232,7 @@
} else {
JavaMethod& meth = cl->virtualMethods[index];
VirtualTable* VT = 0;
- if (meth.name->equals(Jnjvm::finalize)) {
+ if (meth.name->equals(cl->classLoader->bootstrapLoader->finalize)) {
VT = allocateVT(cl, ++index);
#ifndef ISOLATE_SHARING
meth.offset = 0;
More information about the vmkit-commits
mailing list