Explorar el Código

LibWeb: Shrink DOM::EventTarget by 80 bytes

Do this by converting two Function members into virtual functions:
- legacy_pre_activation_behavior
- legacy_cancelled_activation_behavior
Andreas Kling hace 3 años
padre
commit
a97586c24a

+ 2 - 3
Userland/Libraries/LibWeb/DOM/EventDispatcher.cpp

@@ -283,7 +283,7 @@ bool EventDispatcher::dispatch(NonnullRefPtr<EventTarget> target, NonnullRefPtr<
             }
         }
 
-        if (activation_target && activation_target->legacy_pre_activation_behavior)
+        if (activation_target)
             activation_target->legacy_pre_activation_behavior();
 
         for (ssize_t i = event->path().size() - 1; i >= 0; --i) {
@@ -329,8 +329,7 @@ bool EventDispatcher::dispatch(NonnullRefPtr<EventTarget> target, NonnullRefPtr<
             // NOTE: Since activation_target is set, it will have activation behavior.
             activation_target->activation_behavior(event);
         } else {
-            if (activation_target->legacy_cancelled_activation_behavior)
-                activation_target->legacy_cancelled_activation_behavior();
+            activation_target->legacy_cancelled_activation_behavior();
         }
     }
 

+ 2 - 3
Userland/Libraries/LibWeb/DOM/EventTarget.h

@@ -7,7 +7,6 @@
 #pragma once
 
 #include <AK/FlyString.h>
-#include <AK/Function.h>
 #include <AK/Noncopyable.h>
 #include <AK/Vector.h>
 #include <LibJS/Forward.h>
@@ -50,8 +49,8 @@ public:
     Function<void(const Event&)> activation_behavior;
 
     // NOTE: These only exist for checkbox and radio input elements.
-    Function<void()> legacy_pre_activation_behavior;
-    Function<void()> legacy_cancelled_activation_behavior;
+    virtual void legacy_pre_activation_behavior() { }
+    virtual void legacy_cancelled_activation_behavior() { }
 
     Bindings::CallbackType* event_handler_attribute(FlyString const& name);
     void set_event_handler_attribute(FlyString const& name, Optional<Bindings::CallbackType>);