瀏覽代碼

LibWeb: Fix bogus callback comparisons in EventTarget

When CallbackType::callback was converted from Object& to NNGCP<Object>,
we started comparing the addresses of NNGCPs instead of the addresses of
Objects.

That broke the Discord login form, and this patch fixes it.

Regression from 7c0c1c8f4969abeec1436346f29081b3afbcdeab.
Andreas Kling 2 年之前
父節點
當前提交
7f632ee6f8
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      Userland/Libraries/LibWeb/DOM/EventTarget.cpp

+ 2 - 2
Userland/Libraries/LibWeb/DOM/EventTarget.cpp

@@ -162,7 +162,7 @@ void EventTarget::add_an_event_listener(DOMEventListener& listener)
     //    and capture is listener’s capture, then append listener to eventTarget’s event listener list.
     auto it = m_event_listener_list.find_if([&](auto& entry) {
         return entry->type == listener.type
-            && &entry->callback->callback().callback == &listener.callback->callback().callback
+            && entry->callback->callback().callback == listener.callback->callback().callback
             && entry->capture == listener.capture;
     });
     if (it == m_event_listener_list.end())
@@ -191,7 +191,7 @@ void EventTarget::remove_event_listener(DeprecatedFlyString const& type, IDLEven
             return true;
         if (!entry.callback || !callback)
             return false;
-        return &entry.callback->callback().callback == &callback->callback().callback;
+        return entry.callback->callback().callback == callback->callback().callback;
     };
     auto it = m_event_listener_list.find_if([&](auto& entry) {
         return entry->type == type