From e780ce9a51efdafac12e0324d0664dc4fef6ee8b Mon Sep 17 00:00:00 2001 From: "beard%netscape.com" Date: Fri, 19 Mar 1999 14:35:50 +0000 Subject: [PATCH] changed the finalize method to release the wrapped plugin instance. --- plugin/oji/MRJ/plugin/Source/LiveConnectNativeMethods.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugin/oji/MRJ/plugin/Source/LiveConnectNativeMethods.cpp b/plugin/oji/MRJ/plugin/Source/LiveConnectNativeMethods.cpp index aa28bde25750..7d13d93c1574 100644 --- a/plugin/oji/MRJ/plugin/Source/LiveConnectNativeMethods.cpp +++ b/plugin/oji/MRJ/plugin/Source/LiveConnectNativeMethods.cpp @@ -608,8 +608,8 @@ Java_netscape_javascript_JSObject_getWindow(JNIEnv* env, MRJPluginInstance* pluginInstance = theJVMPlugin->getPluginInstance(java_applet_obj); if (pluginInstance != NULL) { #ifdef MRJPLUGIN_4X + // keep an extra reference to the plugin instance, until it is finalized. jobject jwindow = Wrap_JSObject(env, jsobject(pluginInstance)); - pluginInstance->Release(); return jwindow; #else jsobject jswindow = NULL; @@ -634,6 +634,10 @@ Java_netscape_javascript_JSObject_finalize(JNIEnv* env, jobject java_wrapper_obj { jsobject jsobj = Unwrap_JSObject(env, java_wrapper_obj); +#ifdef MRJPLUGIN_4X + MRJPluginInstance* pluginInstance = (MRJPluginInstance*)jsobj; + NS_IF_RELEASE(pluginInstance); +#else class FinalizeMessage : public JavaMessage { jsobject m_jsobj; public: @@ -649,4 +653,5 @@ Java_netscape_javascript_JSObject_finalize(JNIEnv* env, jobject java_wrapper_obj }; FinalizeMessage msg(jsobj); sendMessage(env, &msg); +#endif }