[vmkit-commits] [vmkit] r62580 - in /vmkit/trunk/lib/JnJVM/Classpath: ClasspathConstructor.cpp ClasspathMethod.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Jan 20 03:17:38 PST 2009


Author: geoffray
Date: Tue Jan 20 05:17:33 2009
New Revision: 62580

URL: http://llvm.org/viewvc/llvm-project?rev=62580&view=rev
Log:
Do not use the fieldSlot, constructorSlot and methodSlot anymore, use
the ClasspathReflect API instead.


Modified:
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp
    vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathConstructor.cpp Tue Jan 20 05:17:33 2009
@@ -11,6 +11,7 @@
 #include "types.h"
 
 #include "Classpath.h"
+#include "ClasspathReflect.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
@@ -24,29 +25,19 @@
 
 extern "C" {
 
-static UserClass* internalGetClass(Jnjvm* vm, jobject Meth) {
-  JavaField* field = vm->upcalls->constructorClass;
-  JavaObject* Cl = (JavaObject*)field->getObjectField((JavaObject*)Meth);
-  UserClass* cl = (UserClass*)UserCommonClass::resolvedImplClass(vm, Cl, false);
-  return cl;
-}
-
 JNIEXPORT jobject JNICALL Java_java_lang_reflect_Constructor_getParameterTypes(
 #ifdef NATIVE_JNI
 JNIEnv *env,
 #endif
-jobject cons) {
+JavaObjectConstructor* cons) {
 
   jobject res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
 
   verifyNull(cons);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, cons);
-  JavaField* field = vm->upcalls->constructorSlot;
-  uint32 index = (uint32)(field->getInt32Field((JavaObject*)cons));
-  JavaMethod* meth = &(cl->virtualMethods[index]);
+  UserClass* cl = cons->getClass();
+  JavaMethod* meth = cons->getInternalMethod();
   JnjvmClassLoader* loader = cl->classLoader;
 
   res = (jobject)meth->getParameterTypes(loader);
@@ -59,18 +50,14 @@
 #ifdef NATIVE_JNI
 JNIEnv *env,
 #endif
-jobject cons) {
+JavaObjectConstructor* cons) {
 
   jint res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
 
   verifyNull(cons);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, cons);
-  JavaField* field = vm->upcalls->constructorSlot;
-  uint32 index = (uint32)(field->getInt32Field((JavaObject*)cons));
-  JavaMethod* meth = &(cl->virtualMethods[index]);
+  JavaMethod* meth = cons->getInternalMethod();
   res = meth->access;
 
   END_NATIVE_EXCEPTION
@@ -82,15 +69,14 @@
 #ifdef NATIVE_JNI
 JNIEnv *env,
 #endif
-jobject _cons, jobject _args, jclass Clazz, jint index) {
+JavaObjectConstructor* cons, jobject _args, jclass Clazz, jint index) {
 
   jobject res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
   
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, _cons);
-  JavaMethod* meth = &(cl->virtualMethods[index]);
+  JavaMethod* meth = cons->getInternalMethod();
   JavaArray* args = (JavaArray*)_args;
   sint32 nbArgs = args ? args->size : 0;
   Signdef* sign = meth->getSignature();
@@ -153,18 +139,15 @@
 #ifdef NATIVE_JNI
 JNIEnv *env, 
 #endif
-jobject cons) {
+JavaObjectConstructor* cons) {
   
   jobjectArray res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
   
   verifyNull(cons);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, cons);
-  JavaField* field = vm->upcalls->constructorSlot;
-  uint32 index = (uint32)(field->getInt32Field((JavaObject*)cons));
-  JavaMethod* meth = &(cl->virtualMethods[index]);
+  UserClass* cl = cons->getClass();
+  JavaMethod* meth = cons->getInternalMethod();
   JnjvmClassLoader* loader = cl->classLoader;
 
   res = (jobjectArray)meth->getExceptionTypes(loader);

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/ClasspathMethod.cpp Tue Jan 20 05:17:33 2009
@@ -11,6 +11,7 @@
 #include "types.h"
 
 #include "Classpath.h"
+#include "ClasspathReflect.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
 #include "JavaObject.h"
@@ -24,30 +25,17 @@
 
 extern "C" {
 
-static UserClass* internalGetClass(Jnjvm* vm, jobject Meth) {
-  JavaField* field = vm->upcalls->methodClass;
-  JavaObject* Cl = (JavaObject*)field->getObjectField((JavaObject*)Meth);
-  UserClass* cl = (UserClass*)UserCommonClass::resolvedImplClass(vm, Cl, false);
-  return cl;
-}
-
-
 JNIEXPORT jint JNICALL Java_java_lang_reflect_Method_getModifiersInternal(
 #ifdef NATIVE_JNI
 JNIEnv *env, 
 #endif
- jobject Meth) { 
+JavaObjectMethod* Meth) { 
   
   jint res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, Meth);
-  JavaField* slot = vm->upcalls->methodSlot;
-  uint32 index = (uint32)slot->getInt32Field((JavaObject*)Meth);
-  JavaMethod* meth = &(cl->virtualMethods[index]);
-  
+  JavaMethod* meth = Meth->getInternalMethod(); 
   res = meth->access;
 
   END_NATIVE_EXCEPTION
@@ -59,17 +47,14 @@
 #ifdef NATIVE_JNI
 JNIEnv *env, 
 #endif
- jobject Meth) {
+JavaObjectMethod* Meth) {
 
   jclass res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, Meth);
-  JavaField* slot = vm->upcalls->methodSlot;
-  uint32 index = (uint32)slot->getInt32Field((JavaObject*)Meth);
-  JavaMethod* meth = &(cl->virtualMethods[index]);
+  UserClass* cl = Meth->getClass();
+  JavaMethod* meth = Meth->getInternalMethod(); 
   JnjvmClassLoader* loader = cl->classLoader;
   res = (jclass)meth->getReturnType(loader);
 
@@ -83,17 +68,14 @@
 #ifdef NATIVE_JNI
 JNIEnv *env, 
 #endif
-jobject Meth) {
+JavaObjectMethod* Meth) {
 
   jobject res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, Meth);
-  JavaField* slot = vm->upcalls->methodSlot;
-  uint32 index = (uint32)slot->getInt32Field((JavaObject*)Meth);
-  JavaMethod* meth = &(cl->virtualMethods[index]);
+  UserClass* cl = Meth->getClass();
+  JavaMethod* meth = Meth->getInternalMethod();
   JnjvmClassLoader* loader = cl->classLoader;
   
   res = (jobject)(meth->getParameterTypes(loader));
@@ -107,17 +89,16 @@
 #ifdef NATIVE_JNI
 JNIEnv *env, 
 #endif
-jobject Meth, jobject _obj, jobject _args, jclass Cl, jint index) {
+JavaObjectMethod* Meth, jobject _obj, jobject _args, jclass Cl, jint index) {
   
   JavaObject* res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
 
   Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, Meth);
-  JavaField* slot = vm->upcalls->methodSlot;
-  uint32 index = (uint32)slot->getInt32Field((JavaObject*)Meth);
-  JavaMethod* meth = &(cl->virtualMethods[index]);
+
+  JavaMethod* meth = Meth->getInternalMethod();
+  
   JavaArray* args = (JavaArray*)_args;
   sint32 nbArgs = args ? args->size : 0;
   Signdef* sign = meth->getSignature();
@@ -140,7 +121,7 @@
       if (isInterface(cl->classDef->access)) {
         cl = obj->classOf->lookupClassFromMethod(meth);
       } else {
-        cl = internalGetClass(vm, meth, Meth);
+        cl = Meth->getClass();
       }
 #endif
 
@@ -251,18 +232,15 @@
 #ifdef NATIVE_JNI
 JNIEnv *env, 
 #endif
-jobject Meth) {
+JavaObjectMethod* Meth) {
 
   jobjectArray res = 0;
 
   BEGIN_NATIVE_EXCEPTION(0)
 
   verifyNull(Meth);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  UserClass* cl = internalGetClass(vm, Meth);
-  JavaField* slot = vm->upcalls->methodSlot;
-  uint32 index = (uint32)slot->getInt32Field((JavaObject*)Meth);
-  JavaMethod* meth = &(cl->virtualMethods[index]);
+  UserClass* cl = Meth->getClass();
+  JavaMethod* meth = Meth->getInternalMethod();
   JnjvmClassLoader* loader = cl->classLoader;
   res = (jobjectArray)meth->getExceptionTypes(loader);
 





More information about the vmkit-commits mailing list