From 3c7e1b80ac2f453605c0a6b0896e84cdf0d536c7 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Wed, 11 Nov 2015 16:43:27 +0200 Subject: [PATCH] unix/modjni: Add missing get_jclass_name() function. --- unix/modjni.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/unix/modjni.c b/unix/modjni.c index 27470ae02b..20804e5a54 100644 --- a/unix/modjni.c +++ b/unix/modjni.c @@ -45,6 +45,7 @@ static JavaVM *jvm; static JNIEnv *env; static jclass Class_class; static jclass String_class; +static jmethodID Class_getName_mid; static jmethodID Class_getField_mid; static jmethodID Class_getMethods_mid; static jmethodID Class_getConstructors_mid; @@ -233,6 +234,14 @@ STATIC void jobject_attr(mp_obj_t self_in, qstr attr_in, mp_obj_t *dest) { } } +STATIC void get_jclass_name(jobject obj, char *buf) { + jclass obj_class = JJ(GetObjectClass, obj); + jstring name = JJ(CallObjectMethod, obj_class, Class_getName_mid); + jint len = JJ(GetStringLength, name); + JJ(GetStringUTFRegion, name, 0, len, buf); + check_exception(); +} + STATIC mp_obj_t jobject_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) { mp_obj_jobject_t *self = self_in; if (!JJ(IsInstanceOf, self->obj, List_class)) { @@ -584,6 +593,8 @@ STATIC void create_jvm() { Object_toString_mid = JJ(GetMethodID, Object_class, "toString", "()Ljava/lang/String;"); + Class_getName_mid = (*env)->GetMethodID(env, Class_class, "getName", + "()Ljava/lang/String;"); Class_getField_mid = (*env)->GetMethodID(env, Class_class, "getField", "(Ljava/lang/String;)Ljava/lang/reflect/Field;"); Class_getMethods_mid = (*env)->GetMethodID(env, Class_class, "getMethods",