[vmkit-commits] [vmkit] r61491 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.h JavaJIT.cpp JnjvmClassLoader.cpp JnjvmClassLoader.h NativeUtil.cpp NativeUtil.h
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue Dec 30 04:36:01 PST 2008
Author: geoffray
Date: Tue Dec 30 06:35:32 2008
New Revision: 61491
URL: http://llvm.org/viewvc/llvm-project?rev=61491&view=rev
Log:
Code cleanup, no functionality changes.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=61491&r1=61490&r2=61491&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Tue Dec 30 06:35:32 2008
@@ -37,6 +37,7 @@
class JavaField;
class JavaMethod;
class JavaObject;
+class Reader;
class Signdef;
class Typedef;
class UTF8;
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=61491&r1=61490&r2=61491&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Tue Dec 30 06:35:32 2008
@@ -187,7 +187,7 @@
bool jnjvm = false;
natPtr = natPtr ? natPtr :
- NativeUtil::nativeLookup(compilingClass, compilingMethod, jnjvm);
+ compilingClass->classLoader->nativeLookup(compilingMethod, jnjvm);
if (!natPtr && !module->isStaticCompiling()) {
fprintf(stderr, "Native function %s not found. Probably "
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=61491&r1=61490&r2=61491&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Tue Dec 30 06:35:32 2008
@@ -884,3 +884,23 @@
intptr_t JnjvmClassLoader::loadInLib(const char* name, void* handle) {
return (intptr_t)dlsym(handle, name);
}
+
+intptr_t JnjvmClassLoader::nativeLookup(JavaMethod* meth, bool& jnjvm) {
+
+ const UTF8* jniConsClName = meth->classDef->name;
+ const UTF8* jniConsName = meth->name;
+ const UTF8* jniConsType = meth->type;
+ sint32 clen = jniConsClName->size;
+ sint32 mnlen = jniConsName->size;
+ sint32 mtlen = jniConsType->size;
+
+ char* buf = (char*)alloca(3 + JNI_NAME_PRE_LEN +
+ ((mnlen + clen + mtlen) << 1));
+ meth->jniConsFromMeth(buf);
+ intptr_t res = loadInLib(buf, jnjvm);
+ if (!res) {
+ meth->jniConsFromMethOverloaded(buf);
+ res = loadInLib(buf, jnjvm);
+ }
+ return res;
+}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h?rev=61491&r1=61490&r2=61491&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h Tue Dec 30 06:35:32 2008
@@ -25,19 +25,18 @@
namespace jnjvm {
class ArrayUInt8;
-class Attribut;
class UserClass;
class UserClassArray;
class ClassMap;
class Classpath;
class UserCommonClass;
+class JavaMethod;
class JavaObject;
class JavaString;
class Jnjvm;
class JnjvmBootstrapLoader;
class JnjvmModule;
class JnjvmModuleProvider;
-class Reader;
class Signdef;
class SignMap;
class Typedef;
@@ -260,6 +259,12 @@
/// loadLib - Loads the library with the given name.
///
void* loadLib(const char* buf);
+
+ /// nativeLookup - Lookup in the class loader a function pointer for the
+ /// method. Also set in the jnjvm parameter is the function is defined in
+ /// JnJVM.
+ ///
+ intptr_t nativeLookup(JavaMethod* meth, bool& jnjvm);
};
/// JnjvmBootstrapLoader - This class is for the bootstrap class loader, which
Modified: vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp?rev=61491&r1=61490&r2=61491&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp Tue Dec 30 06:35:32 2008
@@ -147,26 +147,6 @@
}
-intptr_t NativeUtil::nativeLookup(CommonClass* cl, JavaMethod* meth,
- bool& jnjvm) {
- const UTF8* jniConsClName = cl->name;
- const UTF8* jniConsName = meth->name;
- const UTF8* jniConsType = meth->type;
- sint32 clen = jniConsClName->size;
- sint32 mnlen = jniConsName->size;
- sint32 mtlen = jniConsType->size;
-
- char* buf = (char*)alloca(3 + JNI_NAME_PRE_LEN +
- ((mnlen + clen + mtlen) << 1));
- meth->jniConsFromMeth(buf);
- intptr_t res = cl->classLoader->loadInLib(buf, jnjvm);
- if (!res) {
- meth->jniConsFromMethOverloaded(buf);
- res = cl->classLoader->loadInLib(buf, jnjvm);
- }
- return res;
-}
-
UserCommonClass* NativeUtil::resolvedImplClass(Jnjvm* vm, jclass clazz,
bool doClinit) {
UserCommonClass* cl = ((JavaObjectClass*)clazz)->getClass();
Modified: vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h?rev=61491&r1=61490&r2=61491&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h Tue Dec 30 06:35:32 2008
@@ -15,12 +15,10 @@
namespace jnjvm {
class ArrayObject;
-class CommonClass;
class JavaMethod;
class JavaObject;
class Jnjvm;
class JnjvmClassLoader;
-class Signdef;
class Typedef;
@@ -52,18 +50,41 @@
th->throwFromJNI(); \
}
+/// NativeUtil - This class groups a set of static function useful when dealing
+/// with Java objects in native code.
+///
class NativeUtil {
public:
+ /// myVM - Get the current virtual machine.
+ ///
static Jnjvm* myVM(JNIEnv* env);
- static intptr_t nativeLookup(CommonClass* cl, JavaMethod* meth, bool& jnjvm);
+
+ /// resolvedImplClass - Return the internal representation of the
+ /// java.lang.Class object. The class must be resolved.
+ //
static UserCommonClass* resolvedImplClass(Jnjvm* vm, jclass clazz,
bool doClinit);
+
+ /// decapsulePrimitive - Based on the signature argument, decapsule
+ /// obj as a primitive and put it in the buffer.
+ ///
static void decapsulePrimitive(Jnjvm *vm, uintptr_t &buf, JavaObject* obj,
const Typedef* signature);
+ /// getClassType - Return the java.lang.Class of the type, with the given
+ /// class loader.
+ ///
static JavaObject* getClassType(JnjvmClassLoader* loader, Typedef* type);
+
+ /// getParameterTypes - Get the java.lang.Class of the parameters of
+ /// the method, with the given class loader.
+ ///
static ArrayObject* getParameterTypes(JnjvmClassLoader* loader, JavaMethod* meth);
+
+ /// getExceptionTypes - Get the java.lang.Class of the exceptions of the
+ /// method, with the given class loader.
+ ///
static ArrayObject* getExceptionTypes(UserClass* cl, JavaMethod* meth);
};
More information about the vmkit-commits
mailing list