[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