Skip to content

Commit 3c7e1b8

Browse files
committed
unix/modjni: Add missing get_jclass_name() function.
1 parent 3551368 commit 3c7e1b8

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

unix/modjni.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ static JavaVM *jvm;
4545
static JNIEnv *env;
4646
static jclass Class_class;
4747
static jclass String_class;
48+
static jmethodID Class_getName_mid;
4849
static jmethodID Class_getField_mid;
4950
static jmethodID Class_getMethods_mid;
5051
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) {
233234
}
234235
}
235236

237+
STATIC void get_jclass_name(jobject obj, char *buf) {
238+
jclass obj_class = JJ(GetObjectClass, obj);
239+
jstring name = JJ(CallObjectMethod, obj_class, Class_getName_mid);
240+
jint len = JJ(GetStringLength, name);
241+
JJ(GetStringUTFRegion, name, 0, len, buf);
242+
check_exception();
243+
}
244+
236245
STATIC mp_obj_t jobject_subscr(mp_obj_t self_in, mp_obj_t index, mp_obj_t value) {
237246
mp_obj_jobject_t *self = self_in;
238247
if (!JJ(IsInstanceOf, self->obj, List_class)) {
@@ -584,6 +593,8 @@ STATIC void create_jvm() {
584593
Object_toString_mid = JJ(GetMethodID, Object_class, "toString",
585594
"()Ljava/lang/String;");
586595

596+
Class_getName_mid = (*env)->GetMethodID(env, Class_class, "getName",
597+
"()Ljava/lang/String;");
587598
Class_getField_mid = (*env)->GetMethodID(env, Class_class, "getField",
588599
"(Ljava/lang/String;)Ljava/lang/reflect/Field;");
589600
Class_getMethods_mid = (*env)->GetMethodID(env, Class_class, "getMethods",

0 commit comments

Comments
 (0)