1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 03:47:34 +00:00

LibWeb: Store the SVG <use> element's referenced ID as a FlyString

We currently store a StringView into the DeprecatedString provided to
SVGUseElement::attribute_changed. This is a temporary string created by
String::to_deprecated_string, so this StringView is always a dangling
pointer.

Instead, since this string value is an ID and is primarily used as a
FlyString, store it as a FlyString from the get-go.
This commit is contained in:
Timothy Flynn 2023-10-11 10:13:17 -04:00 committed by Andreas Kling
parent a396bb0c0b
commit 33443190d0
2 changed files with 7 additions and 5 deletions

View file

@ -6,6 +6,7 @@
#pragma once
#include <AK/FlyString.h>
#include <LibGfx/Path.h>
#include <LibWeb/DOM/DocumentObserver.h>
#include <LibWeb/SVG/SVGAnimatedLength.h>
@ -46,7 +47,7 @@ private:
virtual JS::GCPtr<Layout::Node> create_layout_node(NonnullRefPtr<CSS::StyleProperties>) override;
Optional<StringView> parse_id_from_href(DeprecatedString const& href);
Optional<FlyString> parse_id_from_href(DeprecatedString const& href);
JS::GCPtr<DOM::Element> referenced_element();
@ -56,7 +57,7 @@ private:
Optional<float> m_x;
Optional<float> m_y;
Optional<StringView> m_referenced_id;
Optional<FlyString> m_referenced_id;
JS::GCPtr<DOM::DocumentObserver> m_document_observer;
};