aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-05-16 00:20:12 +0800
committerChristian Persch <chpe@src.gnome.org>2004-05-16 00:20:12 +0800
commitbc2707c6d4155c9a9a251cfdc2db86c1e097ea35 (patch)
treebd91d22bfac788f4121780f1542cf4c0adf1ade2
parent8b98e5a84ca0346c9a86d51f0f9e22f24e7ad480 (diff)
downloadgsoc2013-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--ChangeLog6
-rw-r--r--embed/mozilla/EphyBrowser.cpp18
2 files changed, 17 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 235388893..fcd9bd188 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;