Partly revert "Android: use NewGlobalRef for references that are used globally"

The added complexity wasn't needed for most subsystems, as main() never returns
so local references can't be freed.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29570 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Maurus Cuelenaere 2011-03-11 19:23:00 +00:00
parent 66f2a08f8a
commit c2ee32b22a
6 changed files with 23 additions and 48 deletions

View file

@ -61,17 +61,14 @@ static void kdb_init(void)
{
semaphore_init(&kbd_wakeup, 1, 0);
/* get the class and its constructor */
jclass kbInput_class = e->FindClass(env_ptr,
RockboxKeyboardInput_class = e->FindClass(env_ptr,
"org/rockbox/RockboxKeyboardInput");
RockboxKeyboardInput_class = e->NewGlobalRef(env_ptr, kbInput_class);
jmethodID constructor = e->GetMethodID(env_ptr,
RockboxKeyboardInput_class,
"<init>", "()V");
jobject kbInput_instance = e->NewObject(env_ptr,
RockboxKeyboardInput_class,
constructor);
RockboxKeyboardInput_instance = e->NewGlobalRef(env_ptr,
kbInput_instance);
RockboxKeyboardInput_instance = e->NewObject(env_ptr,
RockboxKeyboardInput_class,
constructor);
kbd_inputfunc = e->GetMethodID(env_ptr, RockboxKeyboardInput_class,
"kbd_input",
"(Ljava/lang/String;"

View file

@ -128,14 +128,13 @@ void notification_init(void)
JNIEnv e = *env_ptr;
jfieldID nNM = e->GetFieldID(env_ptr, RockboxService_class,
"fg_runner", "Lorg/rockbox/Helper/RunForegroundManager;");
jobject nMN_instance = e->GetObjectField(env_ptr,
RockboxService_instance, nNM);
if (nMN_instance == NULL)
NotificationManager_instance = e->GetObjectField(env_ptr,
RockboxService_instance, nNM);
if (NotificationManager_instance == NULL)
{
DEBUGF("Failed to get RunForegroundManager instance. Performance will be bad");
return;
}
NotificationManager_instance = e->NewGlobalRef(env_ptr, nMN_instance);
jclass class = e->GetObjectClass(env_ptr, NotificationManager_instance);
updateNotification = e->GetMethodID(env_ptr, class, "updateNotification",

View file

@ -52,21 +52,20 @@ static void yesno_init(JNIEnv *env_ptr)
{
semaphore_init(&yesno_done, 1, 0);
/* get the class and its constructor */
jclass yesno_class = e->FindClass(env_ptr,
"org/rockbox/RockboxYesno");
jclass RockboxYesno_class = e->FindClass(env_ptr,
"org/rockbox/RockboxYesno");
jmethodID constructor = e->GetMethodID(env_ptr,
yesno_class,
RockboxYesno_class,
"<init>", "()V");
jobject yesno_instance = e->NewObject(env_ptr,
yesno_class,
constructor);
RockboxYesno_instance = e->NewGlobalRef(env_ptr, yesno_instance);
yesno_func = e->GetMethodID(env_ptr, yesno_class,
RockboxYesno_instance = e->NewObject(env_ptr,
RockboxYesno_class,
constructor);
yesno_func = e->GetMethodID(env_ptr, RockboxYesno_class,
"yesno_display",
"(Ljava/lang/String;"
"Ljava/lang/String;"
"Ljava/lang/String;)V");
yesno_is_usable = e->GetMethodID(env_ptr, yesno_class,
yesno_is_usable = e->GetMethodID(env_ptr, RockboxYesno_class,
"is_usable", "()Z");
}
/* need to get it every time incase the activity died/restarted */