diff --git a/js/src/liveconnect/jsj.c b/js/src/liveconnect/jsj.c index 5a2a5fcdf9a4..480db754e2a7 100644 --- a/js/src/liveconnect/jsj.c +++ b/js/src/liveconnect/jsj.c @@ -50,12 +50,14 @@ report_java_initialization_error(JNIEnv *jEnv, const char *js_error_msg) const char *error_msg, *java_error_msg; java_error_msg = NULL; - +#if 0 /* This can never work here, because jsj_GetJavaErrorMessage relies on + jlThrowable_toString which is set up by the initialization that calls + this function. */ if (jEnv) { java_error_msg = jsj_GetJavaErrorMessage(jEnv); (*jEnv)->ExceptionClear(jEnv); } - +#endif if (java_error_msg) { error_msg = PR_smprintf("initialization error: %s (%s)\n", js_error_msg, java_error_msg); diff --git a/js/src/liveconnect/jsj_JavaObject.c b/js/src/liveconnect/jsj_JavaObject.c index c28cd44d3add..707de237bb2b 100644 --- a/js/src/liveconnect/jsj_JavaObject.c +++ b/js/src/liveconnect/jsj_JavaObject.c @@ -1,4 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "License"); you may not use this file except in @@ -228,9 +228,13 @@ enumerate_remove_java_obj(JSJHashEntry *he, PRIntn i, void *arg) void jsj_DiscardJavaObjReflections(JNIEnv *jEnv) { - JSJ_HashTableEnumerateEntries(java_obj_reflections, - enumerate_remove_java_obj, - (void*)jEnv); + if (java_obj_reflections) { + JSJ_HashTableEnumerateEntries(java_obj_reflections, + enumerate_remove_java_obj, + (void*)jEnv); + JSJ_HashTableDestroy(java_obj_reflections); + java_obj_reflections = NULL; + } } PR_CALLBACK JSBool diff --git a/js/src/liveconnect/jsj_class.c b/js/src/liveconnect/jsj_class.c index a7e9a862f7bf..d13a0615aedc 100644 --- a/js/src/liveconnect/jsj_class.c +++ b/js/src/liveconnect/jsj_class.c @@ -1,4 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "License"); you may not use this file except in @@ -369,9 +369,13 @@ enumerate_remove_java_class(JSJHashEntry *he, PRIntn i, void *arg) void jsj_DiscardJavaClassReflections(JNIEnv *jEnv) { - JSJ_HashTableEnumerateEntries(java_class_reflections, - enumerate_remove_java_class, - (void*)jEnv); + if (java_class_reflections) { + JSJ_HashTableEnumerateEntries(java_class_reflections, + enumerate_remove_java_class, + (void*)jEnv); + JSJ_HashTableDestroy(java_class_reflections); + java_class_reflections = NULL; + } } extern JavaClassDescriptor *