Browse Source

LibWeb: Reduce SelectItemOption struct from 40 to 32 bytes

Pavel Shliak 7 months ago
parent
commit
1bdc41faa1

+ 2 - 2
Libraries/LibWeb/HTML/HTMLSelectElement.cpp

@@ -389,7 +389,7 @@ void HTMLSelectElement::show_the_picker_if_applicable()
             for (auto const& child : opt_group_element.children_as_vector()) {
                 if (is<HTMLOptionElement>(*child)) {
                     auto& option_element = verify_cast<HTMLOptionElement>(*child);
-                    option_group_items.append(SelectItemOption { id_counter++, strip_newlines(option_element.text_content()), option_element.value(), option_element.selected(), option_element.disabled(), option_element });
+                    option_group_items.append(SelectItemOption { id_counter++, option_element.selected(), option_element.disabled(), option_element, strip_newlines(option_element.text_content()), option_element.value() });
                 }
             }
             m_select_items.append(SelectItemOptionGroup { opt_group_element.get_attribute(AttributeNames::label).value_or(String {}), option_group_items });
@@ -397,7 +397,7 @@ void HTMLSelectElement::show_the_picker_if_applicable()
 
         if (is<HTMLOptionElement>(*child)) {
             auto& option_element = verify_cast<HTMLOptionElement>(*child);
-            m_select_items.append(SelectItemOption { id_counter++, strip_newlines(option_element.text_content()), option_element.value(), option_element.selected(), option_element.disabled(), option_element });
+            m_select_items.append(SelectItemOption { id_counter++, option_element.selected(), option_element.disabled(), option_element, strip_newlines(option_element.text_content()), option_element.value() });
         }
 
         if (is<HTMLHRElement>(*child))

+ 1 - 1
Libraries/LibWeb/HTML/SelectItem.cpp

@@ -27,7 +27,7 @@ ErrorOr<Web::HTML::SelectItemOption> IPC::decode(Decoder& decoder)
     auto value = TRY(decoder.decode<String>());
     auto selected = TRY(decoder.decode<bool>());
     auto disabled = TRY(decoder.decode<bool>());
-    return Web::HTML::SelectItemOption { id, move(label), move(value), selected, disabled };
+    return Web::HTML::SelectItemOption { id, selected, disabled, {}, move(label), move(value) };
 }
 
 template<>

+ 2 - 2
Libraries/LibWeb/HTML/SelectItem.h

@@ -14,11 +14,11 @@ namespace Web::HTML {
 
 struct SelectItemOption {
     u32 id { 0 };
-    String label {};
-    String value {};
     bool selected { false };
     bool disabled { false };
     JS::GCPtr<HTMLOptionElement> option_element {};
+    String label {};
+    String value {};
 };
 
 struct SelectItemOptionGroup {