[vmkit-commits] [vmkit] r73229 - /vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Fri Jun 12 08:00:46 PDT 2009
Author: geoffray
Date: Fri Jun 12 10:00:41 2009
New Revision: 73229
URL: http://llvm.org/viewvc/llvm-project?rev=73229&view=rev
Log:
If the method is not found, delay throwing the exception after
unlocking the spin lock.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp?rev=73229&r1=73228&r2=73229&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp Fri Jun 12 10:00:41 2009
@@ -61,9 +61,15 @@
UserCommonClass* ocl = ovt->cl;
UserClass* methodCl = 0;
UserClass* lookup = ocl->isArray() ? ocl->super : ocl->asClass();
- JavaMethod* dmeth = lookup->lookupMethod(enveloppe->methodName,
- enveloppe->methodSign,
- false, true, &methodCl);
+ JavaMethod* dmeth = lookup->lookupMethodDontThrow(enveloppe->methodName,
+ enveloppe->methodSign,
+ false, true, &methodCl);
+
+ if (!dmeth) {
+ enveloppe->cacheLock.release();
+ JavaThread::get()->getJVM()->noSuchMethodError(lookup,
+ enveloppe->methodName);
+ }
#if !defined(ISOLATE_SHARING) && !defined(SERVICE)
assert(dmeth->classDef->isInitializing() &&
More information about the vmkit-commits
mailing list