[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