From cecd5b3b5b821f16d6d2aa8107807448dbae758e Mon Sep 17 00:00:00 2001 From: Callum Law Date: Fri, 22 Aug 2025 17:31:54 +1200 Subject: [PATCH] LibWeb: Compute invalidation before value is moved `set_animated_property` will move `new_animated_value` away so we need to compute invalidation before we call it --- Libraries/LibWeb/DOM/Element.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Libraries/LibWeb/DOM/Element.cpp b/Libraries/LibWeb/DOM/Element.cpp index 9462d4fcb78..afaaa842801 100644 --- a/Libraries/LibWeb/DOM/Element.cpp +++ b/Libraries/LibWeb/DOM/Element.cpp @@ -821,13 +821,13 @@ CSS::RequiredInvalidationAfterStyleChange Element::recompute_inherited_style() RefPtr old_animated_value = computed_properties->animated_property_values().get(property_id).value_or({}); RefPtr new_animated_value = CSS::StyleComputer::get_animated_inherit_value(property_id, this).map([&](auto& value) { return value.ptr(); }).value_or({}); + invalidation |= CSS::compute_property_invalidation(property_id, old_animated_value, new_animated_value); + if (new_animated_value) computed_properties->set_animated_property(property_id, new_animated_value.release_nonnull(), CSS::ComputedProperties::Inherited::Yes); else if (old_animated_value && computed_properties->is_animated_property_inherited(property_id)) computed_properties->remove_animated_property(property_id); - invalidation |= CSS::compute_property_invalidation(property_id, old_animated_value, new_animated_value); - RefPtr new_value = CSS::StyleComputer::get_inherit_value(property_id, this); computed_properties->set_property(property_id, *new_value, CSS::ComputedProperties::Inherited::Yes); invalidation |= CSS::compute_property_invalidation(property_id, old_value, new_value);