You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2011/04/11 07:36:38 UTC
svn commit: r1090939 -
/commons/sandbox/runtime/trunk/src/main/native/shared/reflect.c
Author: mturk
Date: Mon Apr 11 05:36:38 2011
New Revision: 1090939
URL: http://svn.apache.org/viewvc?rev=1090939&view=rev
Log:
Add few more Reflect native methods
Modified:
commons/sandbox/runtime/trunk/src/main/native/shared/reflect.c
Modified: commons/sandbox/runtime/trunk/src/main/native/shared/reflect.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/reflect.c?rev=1090939&r1=1090938&r2=1090939&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/reflect.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/reflect.c Mon Apr 11 05:36:38 2011
@@ -32,16 +32,33 @@ ACR_JNI_EXPORT(jobject, Reflect, get0)(J
WITH_CSTR(name) {
_jni_classname(J2S(name));
c = (jobject)(*_E)->FindClass(_E, J2S(name));
+ /* XXX: Do we need some reference here?
+ */
+ }
+ DONE_WITH_STR(name);
+ return c;
+}
+
+ACR_JNI_EXPORT(jobject, Reflect, get1)(JNI_STDARGS, jstring name,
+ jboolean isWeak)
+{
+ jobject c = 0;
+ WITH_CSTR(name) {
+ _jni_classname(J2S(name));
+ c = (jobject)(*_E)->FindClass(_E, J2S(name));
if (c != 0) {
/* Can throw OutOfMemoryError */
- c = (*_E)->NewWeakGlobalRef(_E, c);
+ if (isWeak)
+ c = (*_E)->NewWeakGlobalRef(_E, c);
+ else
+ c = (*_E)->NewGlobalRef(_E, c);
}
}
DONE_WITH_STR(name);
return c;
}
-ACR_JNI_EXPORT(jlong, Reflect, get1)(JNI_STDARGS,
+ACR_JNI_EXPORT(jlong, Reflect, get2)(JNI_STDARGS,
jclass clazz,
jstring name,
jstring sig,
@@ -62,7 +79,7 @@ ACR_JNI_EXPORT(jlong, Reflect, get1)(JNI
return id;
}
-ACR_JNI_EXPORT(jlong, Reflect, get2)(JNI_STDARGS,
+ACR_JNI_EXPORT(jlong, Reflect, get3)(JNI_STDARGS,
jclass clazz,
jstring name,
jstring sig,
@@ -83,7 +100,7 @@ ACR_JNI_EXPORT(jlong, Reflect, get2)(JNI
return id;
}
-ACR_JNI_EXPORT(jobject, Reflect, get3)(JNI_STDARGS,
+ACR_JNI_EXPORT(jobject, Reflect, get4)(JNI_STDARGS,
jclass clazz,
jlong methodId,
jboolean isStatic)
@@ -91,10 +108,36 @@ ACR_JNI_EXPORT(jobject, Reflect, get3)(J
return (*_E)->ToReflectedMethod(_E, clazz, J2P(methodId, jmethodID), isStatic);
}
-ACR_JNI_EXPORT(jobject, Reflect, get4)(JNI_STDARGS,
+ACR_JNI_EXPORT(jobject, Reflect, get5)(JNI_STDARGS,
jclass clazz,
jlong fieldId,
jboolean isStatic)
{
return (*_E)->ToReflectedField(_E, clazz, J2P(fieldId, jfieldID), isStatic);
}
+
+ACR_JNI_EXPORT(jint, Reflect, get6)(JNI_STDARGS,
+ jobject obj)
+{
+ return (jint)(*_E)->GetObjectRefType(_E, obj);
+}
+
+ACR_JNI_EXPORT(jobject, Reflect, new0)(JNI_STDARGS,
+ jclass clazz)
+{
+ return (*_E)->AllocObject(_E, clazz);
+}
+
+ACR_JNI_EXPORT(void, Reflect, clr0)(JNI_STDARGS, jobject obj)
+{
+ jobject o = (*_E)->NewLocalRef(_E, obj);
+ if (o != 0) {
+ (*_E)->DeleteWeakGlobalRef(_E, obj);
+ (*_E)->DeleteLocalRef(_E, o);
+ }
+}
+
+ACR_JNI_EXPORT(void, Reflect, clr1)(JNI_STDARGS, jobject obj)
+{
+ (*_E)->DeleteGlobalRef(_E, obj);
+}