1
0
Fork 0
forked from len0rd/rockbox

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

@ -37,19 +37,13 @@ uintptr_t *stackend;
extern int main(void);
extern void telephony_init_device(void);
extern void lcd_deinit(void);
extern void pcm_deinit(void);
void system_exception_wait(void) { }
void system_reboot(void) { }
void power_off(void)
{
JNIEnv *env_ptr = getJavaEnvironment();
lcd_deinit();
pcm_deinit();
(*env_ptr)->DeleteGlobalRef(env_ptr, RockboxService_class);
}
void system_init(void)
@ -62,8 +56,6 @@ void system_init(void)
JNIEXPORT void JNICALL
Java_org_rockbox_RockboxService_main(JNIEnv *env, jobject this)
{
jclass class = (*env)->GetObjectClass(env, this);
/* hack!!! we can't have a valid stack pointer otherwise.
* but we don't really need it anyway, thread.c only needs it
* for overflow detection which doesn't apply for the main thread
@ -73,8 +65,8 @@ Java_org_rockbox_RockboxService_main(JNIEnv *env, jobject this)
stackbegin = stackend = (uintptr_t*) &stack;
(*env)->GetJavaVM(env, &vm_ptr);
RockboxService_instance = (*env)->NewGlobalRef(env, this);
RockboxService_class = (*env)->NewGlobalRef(env, class);
RockboxService_instance = this;
RockboxService_class = (*env)->GetObjectClass(env, this);
main();
}