[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