[vmkit-commits] [vmkit] r61466 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaJIT.cpp JnjvmModuleProvider.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Mon Dec 29 00:58:16 PST 2008
Author: geoffray
Date: Mon Dec 29 02:57:57 2008
New Revision: 61466
URL: http://llvm.org/viewvc/llvm-project?rev=61466&view=rev
Log:
Do not initialize a class when materializing a function. Make sure
the class has already been loaded and initialized.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=61466&r1=61465&r2=61466&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Mon Dec 29 02:57:57 2008
@@ -1592,21 +1592,13 @@
args.push_back(newCtpCache);
#endif
- // If we're not static compiling or we're not in an isolate environment,
- // the callback will do the initialization
-#ifndef ISOLATE
- if (module->isStaticCompiling()) {
-#endif
- uint32 clIndex = ctpInfo->getClassIndexFromMethod(index);
- UserClass* cl = 0;
- Value* Cl = getResolvedClass(clIndex, true, true, &cl);
- if (!meth || (cl && needsInitialisationCheck(cl, compilingClass))) {
- CallInst::Create(module->ForceInitialisationCheckFunction, Cl, "",
- currentBlock);
- }
-#ifndef ISOLATE
+ uint32 clIndex = ctpInfo->getClassIndexFromMethod(index);
+ UserClass* cl = 0;
+ Value* Cl = getResolvedClass(clIndex, true, true, &cl);
+ if (!meth || (cl && needsInitialisationCheck(cl, compilingClass))) {
+ CallInst::Create(module->ForceInitialisationCheckFunction, Cl, "",
+ currentBlock);
}
-#endif
if (meth && canBeInlined(meth)) {
val = invokeInline(meth, args);
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp?rev=61466&r1=61465&r2=61466&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp Mon Dec 29 02:57:57 2008
@@ -53,15 +53,8 @@
JavaMethod* meth = lookup->lookupMethod(utf8, sign->keyName, isStatic, true,
0);
-#ifndef ISOLATE_SHARING
- // A multi environment would have already initialized the class. Besides,
- // a callback does not involve UserClass, therefore we wouldn't know
- // which class to initialize.
- if (!isVirtual(meth->access))
- lookup->initialiseClass(JavaThread::get()->getJVM());
-#endif
+ assert(lookup->isInitializing() && "Class not ready");
- meth->compiledPtr();
return meth;
}
More information about the vmkit-commits
mailing list