@@ -45,6 +45,7 @@ static JavaVM *jvm;
4545static JNIEnv * env ;
4646static jclass Class_class ;
4747static jclass String_class ;
48+ static jmethodID Class_getName_mid ;
4849static jmethodID Class_getField_mid ;
4950static jmethodID Class_getMethods_mid ;
5051static 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+
236245STATIC 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