[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
alex at webkit.org
alex at webkit.org
Wed Dec 22 15:42:04 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 0cb30f97efb113fec3a92aa8941616311521366c
Author: alex at webkit.org <alex at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Nov 10 17:34:01 2010 +0000
2010-11-10 Alejandro G. Castro <alex at igalia.com>
Reviewed by Martin Robinson.
[gtk] The revision r71528 causes crashes in GObjectEventListener
https://bugs.webkit.org/show_bug.cgi?id=49314
Moved the addition of the event listener to the node after calling
the constructor of the event listener. This is required beacuse
the addEventListener API receives the EventListener inside a
PassRefPtr.
* bindings/gobject/GObjectEventListener.cpp:
(WebCore::GObjectEventListener::GObjectEventListener):
* bindings/gobject/GObjectEventListener.h:
(WebCore::GObjectEventListener::addEventListener):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71748 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d2149ec..427c205 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-11-10 Alejandro G. Castro <alex at igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [gtk] The revision r71528 causes crashes in GObjectEventListener
+ https://bugs.webkit.org/show_bug.cgi?id=49314
+
+ Moved the addition of the event listener to the node after calling
+ the constructor of the event listener. This is required beacuse
+ the addEventListener API receives the EventListener inside a
+ PassRefPtr.
+
+ * bindings/gobject/GObjectEventListener.cpp:
+ (WebCore::GObjectEventListener::GObjectEventListener):
+ * bindings/gobject/GObjectEventListener.h:
+ (WebCore::GObjectEventListener::addEventListener):
+
2010-11-02 Alexander Pavlov <apavlov at chromium.org>
Reviewed by Pavel Feldman.
diff --git a/WebCore/bindings/gobject/GObjectEventListener.cpp b/WebCore/bindings/gobject/GObjectEventListener.cpp
index 553d717..3e0aa2a 100644
--- a/WebCore/bindings/gobject/GObjectEventListener.cpp
+++ b/WebCore/bindings/gobject/GObjectEventListener.cpp
@@ -19,10 +19,8 @@
#include "config.h"
#include "GObjectEventListener.h"
-#include "DOMWindow.h"
#include "Event.h"
#include "EventListener.h"
-#include "Node.h"
#include "webkit/WebKitDOMEvent.h"
#include "webkit/WebKitDOMEventPrivate.h"
#include <glib-object.h>
@@ -40,10 +38,7 @@ GObjectEventListener::GObjectEventListener(GObject* object, DOMWindow* window, N
, m_signalName(signalName)
{
ASSERT(!m_coreWindow || !m_coreNode);
- if (m_coreWindow)
- m_coreWindow->addEventListener(domEventName, this, false);
- if (m_coreNode)
- m_coreNode->addEventListener(domEventName, this, false);
+
g_object_weak_ref(object, reinterpret_cast<GWeakNotify>(GObjectEventListener::gobjectDestroyedCallback), this);
}
diff --git a/WebCore/bindings/gobject/GObjectEventListener.h b/WebCore/bindings/gobject/GObjectEventListener.h
index e5ad2e5..ef1637a 100644
--- a/WebCore/bindings/gobject/GObjectEventListener.h
+++ b/WebCore/bindings/gobject/GObjectEventListener.h
@@ -19,7 +19,9 @@
#ifndef GObjectEventListener_h
#define GObjectEventListener_h
+#include "DOMWindow.h"
#include "EventListener.h"
+#include "Node.h"
#include <wtf/RefPtr.h>
#include <wtf/text/CString.h>
@@ -28,20 +30,19 @@ typedef struct _GObject GObject;
namespace WebCore {
-class DOMWindow;
-class Node;
-
class GObjectEventListener : public EventListener {
public:
static void addEventListener(GObject* object, DOMWindow* window, const char* domEventName, const char* signalName)
{
RefPtr<GObjectEventListener> listener(adoptRef(new GObjectEventListener(object, window, 0, domEventName, signalName)));
+ window->addEventListener(domEventName, listener.release(), false);
}
static void addEventListener(GObject* object, Node* node, const char* domEventName, const char* signalName)
{
RefPtr<GObjectEventListener> listener(adoptRef(new GObjectEventListener(object, 0, node, domEventName, signalName)));
+ node->addEventListener(domEventName, listener.release(), false);
}
static void gobjectDestroyedCallback(GObjectEventListener* listener, GObject*)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list