[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