[vmkit-commits] [vmkit] r101714 - in /vmkit/trunk/lib/J3/VMCore: JnjvmClassLoader.cpp JnjvmClassLoader.h
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Apr 18 03:20:22 PDT 2010
Author: geoffray
Date: Sun Apr 18 05:20:22 2010
New Revision: 101714
URL: http://llvm.org/viewvc/llvm-project?rev=101714&view=rev
Log:
Cache the loadClass method on class loaders to avoid lookups.
Modified:
vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp
vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h
Modified: vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp?rev=101714&r1=101713&r2=101714&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp Sun Apr 18 05:20:22 2010
@@ -280,8 +280,9 @@
isolate = I;
JavaMethod* meth = bootstrapLoader->upcalls->loadInClassLoader;
- loader->getClass()->asClass()->lookupMethodDontThrow(meth->name, meth->type,
- false, true, &loadClass);
+ loadClassMethod =
+ loader->getClass()->asClass()->lookupMethodDontThrow(
+ meth->name, meth->type, false, true, &loadClass);
assert(loadClass && "Loader does not have a loadClass function");
#if defined(SERVICE)
@@ -386,8 +387,8 @@
if (!strName) {
strName = JavaString::internalToJava(name, isolate);
}
- obj = upcalls->loadInClassLoader->invokeJavaObjectVirtual(isolate, forCtp,
- javaLoader, &strName, doResolve);
+ obj = loadClassMethod->invokeJavaObjectVirtual(isolate, forCtp, javaLoader,
+ &strName, doResolve);
cl = (UserCommonClass*)((JavaObjectClass*)obj)->getClass();
}
Modified: vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h?rev=101714&r1=101713&r2=101714&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h Sun Apr 18 05:20:22 2010
@@ -238,6 +238,10 @@
/// loadClass - The user class that defines the loadClass method.
///
UserClass* loadClass;
+
+ /// loadClassMethod - The loadClass defined by this class loader.
+ ///
+ JavaMethod* loadClassMethod;
/// constructArrayName - Construct an array name based on a class name
/// and the number of dimensions.
More information about the vmkit-commits
mailing list