[vmkit-commits] [vmkit] r61492 - in /vmkit/trunk/lib/JnJVM: Classpath/ClasspathConstructor.cpp Classpath/ClasspathMethod.cpp VMCore/JavaClass.cpp VMCore/JavaClass.h VMCore/NativeUtil.cpp VMCore/NativeUtil.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Dec 30 05:08:12 PST 2008


Author: geoffray
Date: Tue Dec 30 07:08:02 2008
New Revision: 61492

URL: http://llvm.org/viewvc/llvm-project?rev=61492&view=rev
Log:
Reorganize code.


Modified:
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
    vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
    vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp?rev=61492&r1=61491&r2=61492&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp Tue Dec 30 07:08:02 2008
@@ -57,7 +57,7 @@
   UserClass* cl = internalGetClass(vm, meth, cons);
   JnjvmClassLoader* loader = cl->classLoader;
 
-  res = (jobject)(NativeUtil::getParameterTypes(loader, meth));
+  res = (jobject)meth->getParameterTypes(loader);
   END_NATIVE_EXCEPTION
 
   return res;
@@ -167,8 +167,9 @@
   JavaField* field = vm->upcalls->constructorSlot;
   JavaMethod* meth = (JavaMethod*)field->getInt32Field((JavaObject*)cons);
   UserClass* cl = internalGetClass(vm, meth, cons);
+  JnjvmClassLoader* loader = cl->classLoader;
 
-  res = (jobjectArray)NativeUtil::getExceptionTypes(cl, meth);
+  res = (jobjectArray)meth->getExceptionTypes(loader);
 
   END_NATIVE_EXCEPTION
 

Modified: vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp?rev=61492&r1=61491&r2=61492&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp Tue Dec 30 07:08:02 2008
@@ -77,8 +77,7 @@
   JavaMethod* meth = (JavaMethod*)slot->getInt32Field((JavaObject*)Meth);
   UserClass* cl = internalGetClass(vm, meth, Meth);
   JnjvmClassLoader* loader = cl->classLoader;
-  Typedef* ret = meth->getSignature()->getReturnType();
-  res = (jclass)NativeUtil::getClassType(loader, ret);
+  res = (jclass)meth->getReturnType(loader);
 
   END_NATIVE_EXCEPTION
 
@@ -101,7 +100,8 @@
   JavaMethod* meth = (JavaMethod*)slot->getInt32Field((JavaObject*)Meth);
   UserClass* cl = internalGetClass(vm, meth, Meth);
   JnjvmClassLoader* loader = cl->classLoader;
-  res = (jobject)(NativeUtil::getParameterTypes(loader, meth));
+  
+  res = (jobject)(meth->getParameterTypes(loader));
 
   END_NATIVE_EXCEPTION
 
@@ -262,7 +262,8 @@
   JavaField* slot = vm->upcalls->methodSlot;
   JavaMethod* meth = (JavaMethod*)slot->getInt32Field((JavaObject*)_meth);
   UserClass* cl = internalGetClass(vm, meth, _meth);
-  res = (jobjectArray)NativeUtil::getExceptionTypes(cl, meth);
+  JnjvmClassLoader* loader = cl->classLoader;
+  res = (jobjectArray)meth->getExceptionTypes(loader);
 
   END_NATIVE_EXCEPTION
 

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=61492&r1=61491&r2=61492&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Tue Dec 30 07:08:02 2008
@@ -983,6 +983,59 @@
   }
 }
 
+static JavaObject* getClassType(Jnjvm* vm, JnjvmClassLoader* loader,
+                                Typedef* type) {
+  UserCommonClass* res = type->assocClass(loader);
+  assert(res && "No associated class");
+  return res->getClassDelegatee(vm);
+}
+
+ArrayObject* JavaMethod::getParameterTypes(JnjvmClassLoader* loader) {
+  Jnjvm* vm = JavaThread::get()->getJVM();
+  Signdef* sign = getSignature();
+  Typedef* const* arguments = sign->getArgumentsType();
+  ArrayObject* res = 
+    (ArrayObject*)vm->upcalls->classArrayClass->doNew(sign->nbArguments, vm);
+
+  for (uint32 index = 0; index < sign->nbArguments; ++index) {
+    res->elements[index] = getClassType(vm, loader, arguments[index]);
+  }
+
+  return res;
+
+}
+
+JavaObject* JavaMethod::getReturnType(JnjvmClassLoader* loader) {
+  Jnjvm* vm = JavaThread::get()->getJVM();
+  Typedef* ret = getSignature()->getReturnType();
+  return getClassType(vm, loader, ret);
+}
+
+ArrayObject* JavaMethod::getExceptionTypes(JnjvmClassLoader* loader) {
+  Attribut* exceptionAtt = lookupAttribut(Attribut::exceptionsAttribut);
+  Jnjvm* vm = JavaThread::get()->getJVM();
+  if (exceptionAtt == 0) {
+    return (ArrayObject*)vm->upcalls->classArrayClass->doNew(0, vm);
+  } else {
+    UserConstantPool* ctp = classDef->getConstantPool();
+    Reader reader(exceptionAtt, classDef->getBytes());
+    uint16 nbe = reader.readU2();
+    ArrayObject* res = 
+      (ArrayObject*)vm->upcalls->classArrayClass->doNew(nbe, vm);
+
+    for (uint16 i = 0; i < nbe; ++i) {
+      uint16 idx = reader.readU2();
+      UserCommonClass* cl = ctp->loadClass(idx);
+      assert(cl->asClass() && "Wrong exception type");
+      cl->asClass()->resolveClass();
+      JavaObject* obj = cl->getClassDelegatee(vm);
+      res->elements[i] = obj;
+    }
+    return res;
+  }
+}
+
+
 void Class::resolveStaticClass() {
   classLoader->getModule()->resolveStaticClass((Class*)this);
 }

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=61492&r1=61491&r2=61492&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Tue Dec 30 07:08:02 2008
@@ -28,6 +28,7 @@
 
 namespace jnjvm {
 
+class ArrayObject;
 class ArrayUInt8;
 class Enveloppe;
 class Class;
@@ -1000,11 +1001,31 @@
   ///
   const char* printString() const;
   
-  /// jniConsFromMeth - Construct the JNI name of this method.
+  /// jniConsFromMeth - Construct the JNI name of this method as if
+  /// there is no other function in the class with the same name.
   ///
   void jniConsFromMeth(char* buf) const;
+
+  /// jniConsFromMethOverloaded - Construct the JNI name of this method
+  /// as if its name is overloaded in the class.
+  ///
   void jniConsFromMethOverloaded(char* buf) const;
   
+  /// getParameterTypes - Get the java.lang.Class of the parameters of
+  /// the method, with the given class loader.
+  ///
+  ArrayObject* getParameterTypes(JnjvmClassLoader* loader);
+
+  /// getExceptionTypes - Get the java.lang.Class of the exceptions of the
+  /// method, with the given class loader.
+  ///
+  ArrayObject* getExceptionTypes(JnjvmClassLoader* loader);
+
+  /// getReturnType - Get the java.lang.Class of the result of the method,
+  /// with the given class loader.
+  ///
+  JavaObject* getReturnType(JnjvmClassLoader* loader);
+  
 
 //===----------------------------------------------------------------------===//
 //

Modified: vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp?rev=61492&r1=61491&r2=61492&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp Tue Dec 30 07:08:02 2008
@@ -299,50 +299,3 @@
   // can not be here
   return;
 }
-
-JavaObject* NativeUtil::getClassType(JnjvmClassLoader* loader, Typedef* type) {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserCommonClass* res = type->assocClass(loader);
-  assert(res && "No associated class");
-  return res->getClassDelegatee(vm);
-}
-
-ArrayObject* NativeUtil::getParameterTypes(JnjvmClassLoader* loader,
-                                           JavaMethod* meth) {
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  Signdef* sign = meth->getSignature();
-  Typedef* const* arguments = sign->getArgumentsType();
-  ArrayObject* res = 
-    (ArrayObject*)vm->upcalls->classArrayClass->doNew(sign->nbArguments, vm);
-
-  for (uint32 index = 0; index < sign->nbArguments; ++index) {
-    res->elements[index] = getClassType(loader, arguments[index]);
-  }
-
-  return res;
-
-}
-
-ArrayObject* NativeUtil::getExceptionTypes(UserClass* cl, JavaMethod* meth) {
-  Attribut* exceptionAtt = meth->lookupAttribut(Attribut::exceptionsAttribut);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  if (exceptionAtt == 0) {
-    return (ArrayObject*)vm->upcalls->classArrayClass->doNew(0, vm);
-  } else {
-    UserConstantPool* ctp = cl->getConstantPool();
-    Reader reader(exceptionAtt, cl->getBytes());
-    uint16 nbe = reader.readU2();
-    ArrayObject* res = 
-      (ArrayObject*)vm->upcalls->classArrayClass->doNew(nbe, vm);
-
-    for (uint16 i = 0; i < nbe; ++i) {
-      uint16 idx = reader.readU2();
-      UserCommonClass* cl = ctp->loadClass(idx);
-      assert(cl->asClass() && "Wrong exception type");
-      cl->asClass()->resolveClass();
-      JavaObject* obj = cl->getClassDelegatee(vm);
-      res->elements[i] = obj;
-    }
-    return res;
-  }
-}

Modified: vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h?rev=61492&r1=61491&r2=61492&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h Tue Dec 30 07:08:02 2008
@@ -72,21 +72,6 @@
   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