summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Gayed <ggayed>2009-12-15 17:47:57 +0000
committerGrant Gayed <ggayed>2009-12-15 17:47:57 +0000
commit19429dc8655bc37bdb9d6cb867eb3fe61e73b0c4 (patch)
tree6e060dfd63c03c4c8ac1e443654e41ee6f9b55f2
parentf6941655058e0de40bfa17eede373c991ed544ee (diff)
downloadeclipse.platform.swt-19429dc8655bc37bdb9d6cb867eb3fe61e73b0c4.tar.gz
eclipse.platform.swt-19429dc8655bc37bdb9d6cb867eb3fe61e73b0c4.tar.xz
eclipse.platform.swt-19429dc8655bc37bdb9d6cb867eb3fe61e73b0c4.zip
287458 - SWT crashes JVM when disposing of browser using XULRunner >=1.9.1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java19
1 files changed, 6 insertions, 13 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java
index 613b3a1203..f8a0fd5ff0 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java
@@ -1234,7 +1234,7 @@ public void create (Composite parent, int style) {
nsIPrefService prefService = new nsIPrefService (result[0]);
result[0] = 0;
- rc = prefService.SavePrefFile(prefFile.getAddress ());
+ rc = prefService.SavePrefFile (prefFile.getAddress ());
prefService.Release ();
prefFile.Release ();
}
@@ -1242,19 +1242,11 @@ public void create (Composite parent, int style) {
if (XPCOMWasGlued) {
/*
- * XULRunner 1.9 can crash on Windows if XPCOMGlueShutdown is invoked here,
- * presumably because one or more of its unloaded symbols are referenced when
- * this callback returns. The workaround is to delay invoking XPCOMGlueShutdown
- * so that its symbols are still available once this callback returns.
+ * The following is intentionally commented because it causes subsequent
+ * browser instantiations within the process to fail. Mozilla does not
+ * support being unloaded and then re-initialized in a process, see
+ * http://www.mail-archive.com/dev-embedding@lists.mozilla.org/msg01732.html .
*/
- display.asyncExec (new Runnable () {
- public void run () {
- XPCOM.XPCOMGlueShutdown ();
- }
- });
-
- // the following is intentionally commented, because calling XRE_TermEmbedding
- // causes subsequent browser instantiations within the process to fail
// int size = XPCOM.nsDynamicFunctionLoad_sizeof ();
// /* alloc memory for two structs, the second is empty to signify the end of the list */
@@ -1276,6 +1268,7 @@ public void create (Composite parent, int style) {
// C.free (ptr);
// XPCOM.Call (functionPtr);
+// XPCOM.XPCOMGlueShutdown ();
XPCOMWasGlued = false;
}
if (XPCOMInitWasGlued) {