@@ -142,6 +142,7 @@ ssize_t dridboot_internal_sd_read_block(void *buf, uint32_t block, uint count)
142142 jsize lengthOfArray = (* env )-> GetArrayLength (env , arr );
143143 memcpy (buf , bufferPtr , lengthOfArray );
144144 (* env )-> ReleaseByteArrayElements (env , arr , bufferPtr , JNI_ABORT );
145+ (* env )-> DeleteLocalRef (env , arr );
145146 return lengthOfArray ;
146147}
147148
@@ -230,7 +231,17 @@ void droidboot_internal_lvgl_threads_init()
230231
231232void droidboot_internal_platform_on_screen_log (const char * buf )
232233{
233- __android_log_print (ANDROID_LOG_INFO , "droidboot" , "%s" , buf ); // TODO toast?
234+ JNIEnv * env ;
235+ int ret ;
236+ if ((ret = (* s_simulator_jvm )-> GetEnv (s_simulator_jvm , (void * * ) & env , JNI_VERSION_1_6 )) != JNI_OK ) {
237+ __android_log_print (ANDROID_LOG_ERROR , "droidboot" , "failed to get jni env: %d" , ret );
238+ }
239+
240+ jclass cls = (* env )-> GetObjectClass (env , s_simulator_thiz );
241+ jmethodID screenPrint = (* env )-> GetMethodID (env , cls , "screenPrint" , "(Ljava/lang/String;)V" );
242+ jstring str = (* env )-> NewStringUTF (env , buf );
243+ (* env )-> CallVoidMethod (env , s_simulator_thiz , screenPrint , str );
244+ (* env )-> DeleteLocalRef (env , str );
234245}
235246
236247void droidboot_internal_platform_system_log (const char * buf )
0 commit comments