diff options
| author | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2011-03-11 18:34:35 +0000 |
|---|---|---|
| committer | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2011-03-11 18:34:35 +0000 |
| commit | 66f2a08f8a37933b9eff79ceabdc2cb42706e48c (patch) | |
| tree | 704cd88300e33a99335adf1d5e3e4ff6b71a2aed /firmware/target/hosted/android/lcd-android.c | |
| parent | 2e5b7aebde6426058ea7b69424b0335a844a6a18 (diff) | |
| download | rockbox-66f2a08f8a37933b9eff79ceabdc2cb42706e48c.zip rockbox-66f2a08f8a37933b9eff79ceabdc2cb42706e48c.tar.gz rockbox-66f2a08f8a37933b9eff79ceabdc2cb42706e48c.tar.bz2 rockbox-66f2a08f8a37933b9eff79ceabdc2cb42706e48c.tar.xz | |
Android: Don't share the JNI environment across threads, but obtain it the
correct way
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29569 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/hosted/android/lcd-android.c')
| -rw-r--r-- | firmware/target/hosted/android/lcd-android.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/firmware/target/hosted/android/lcd-android.c b/firmware/target/hosted/android/lcd-android.c index 08a4075..66ddcd5 100644 --- a/firmware/target/hosted/android/lcd-android.c +++ b/firmware/target/hosted/android/lcd-android.c @@ -28,7 +28,6 @@ #include "lcd.h" #include "button.h" -extern JNIEnv *env_ptr; extern jobject RockboxService_instance; static jobject RockboxFramebuffer_instance; @@ -94,6 +93,8 @@ void connect_with_java(JNIEnv* env, jobject fb_instance) void lcd_deinit(void) { + JNIEnv *env_ptr = getJavaEnvironment(); + (*env_ptr)->DeleteGlobalRef(env_ptr, RockboxFramebuffer_instance); (*env_ptr)->DeleteGlobalRef(env_ptr, native_buffer); } @@ -107,6 +108,8 @@ void lcd_init_device(void) void lcd_update(void) { + JNIEnv *env_ptr = getJavaEnvironment(); + if (display_on) (*env_ptr)->CallVoidMethod(env_ptr, RockboxFramebuffer_instance, java_lcd_update); @@ -114,6 +117,8 @@ void lcd_update(void) void lcd_update_rect(int x, int y, int width, int height) { + JNIEnv *env_ptr = getJavaEnvironment(); + if (display_on) (*env_ptr)->CallVoidMethod(env_ptr, RockboxFramebuffer_instance, java_lcd_update_rect, x, y, width, height); |