diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-05-16 00:20:12 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-05-16 00:20:12 +0800 |
commit | bc2707c6d4155c9a9a251cfdc2db86c1e097ea35 (patch) | |
tree | bd91d22bfac788f4121780f1542cf4c0adf1ade2 | |
parent | 8b98e5a84ca0346c9a86d51f0f9e22f24e7ad480 (diff) | |
download | gsoc2013-epiphany-bc2707c6d4155c9a9a251cfdc2db86c1e097ea35.tar gsoc2013-epiphany-bc2707c6d4155c9a9a251cfdc2db86c1e097ea35.tar.gz gsoc2013-epiphany-bc2707c6d4155c9a9a251cfdc2db86c1e097ea35.tar.bz2 gsoc2013-epiphany-bc2707c6d4155c9a9a251cfdc2db86c1e097ea35.tar.lz gsoc2013-epiphany-bc2707c6d4155c9a9a251cfdc2db86c1e097ea35.tar.xz gsoc2013-epiphany-bc2707c6d4155c9a9a251cfdc2db86c1e097ea35.tar.zst gsoc2013-epiphany-bc2707c6d4155c9a9a251cfdc2db86c1e097ea35.zip |
Set mEventReceiver to nsnull too in ::Destroy(), fixes a crasher.
2004-05-15 Christian Persch <chpe@cvs.gnome.org>
* embed/mozilla/EphyBrowser.cpp:
Set mEventReceiver to nsnull too in ::Destroy(), fixes a crasher.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | embed/mozilla/EphyBrowser.cpp | 18 |
2 files changed, 17 insertions, 7 deletions
@@ -1,3 +1,9 @@ +2004-05-15 Christian Persch <chpe@cvs.gnome.org> + + * embed/mozilla/EphyBrowser.cpp: + + Set mEventReceiver to nsnull too in ::Destroy(), fixes a crasher. + 2004-05-14 Christian Persch <chpe@cvs.gnome.org> * embed/mozilla/EphyContentPolicy.cpp: diff --git a/embed/mozilla/EphyBrowser.cpp b/embed/mozilla/EphyBrowser.cpp index 9530b346c..061eba80c 100644 --- a/embed/mozilla/EphyBrowser.cpp +++ b/embed/mozilla/EphyBrowser.cpp @@ -26,6 +26,7 @@ #include "GlobalHistory.h" #include "ephy-embed.h" #include "ephy-string.h" +#include "ephy-debug.h" #include <gtkmozembed_internal.h> #include <unistd.h> @@ -84,12 +85,14 @@ #include "ContentHandler.h" EphyEventListener::EphyEventListener(void) +: mOwner(nsnull) { - mOwner = nsnull; + LOG ("EphyEventListener ctor (%p)", this) } EphyEventListener::~EphyEventListener() { + LOG ("EphyEventListener dtor (%p)", this) } NS_IMPL_ISUPPORTS1(EphyEventListener, nsIDOMEventListener) @@ -184,11 +187,10 @@ EphyPopupEventListener::HandleEvent(nsIDOMEvent* aDOMEvent) } EphyBrowser::EphyBrowser () +: mFaviconEventListener(nsnull) +, mPopupEventListener(nsnull) +, mInitialized(PR_FALSE) { - mFaviconEventListener = nsnull; - mPopupEventListener = nsnull; - mEventReceiver = nsnull; - mInitialized = PR_FALSE; } EphyBrowser::~EphyBrowser () @@ -282,10 +284,11 @@ EphyBrowser::DetachListeners(void) { nsresult rv; - NS_ENSURE_TRUE (mEventReceiver, NS_ERROR_FAILURE); - + if (!mEventReceiver) return NS_OK; + nsCOMPtr<nsIDOMEventTarget> target; target = do_QueryInterface (mEventReceiver); + NS_ENSURE_TRUE (target, NS_ERROR_FAILURE); rv = target->RemoveEventListener(NS_LITERAL_STRING("DOMLinkAdded"), mFaviconEventListener, PR_FALSE); @@ -395,6 +398,7 @@ nsresult EphyBrowser::Destroy () mWebBrowser = nsnull; mDOMWindow = nsnull; + mEventReceiver = nsnull; mInitialized = PR_FALSE; |