1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:18:12 +00:00

LibWeb: Make StyleSheet::m_parent_style_sheet a WeakPtr

It's not safe for this to be a raw pointer, as the child can outlive the
parent.
This commit is contained in:
Andreas Kling 2021-12-05 15:33:49 +01:00
parent e8b85b13e2
commit 58b99df16d
3 changed files with 11 additions and 4 deletions

View file

@ -18,7 +18,9 @@ namespace Web::CSS {
class CSSImportRule;
class CSSStyleSheet final : public StyleSheet {
class CSSStyleSheet final
: public StyleSheet
, public Weakable<CSSStyleSheet> {
public:
using WrapperType = Bindings::CSSStyleSheetWrapper;

View file

@ -5,6 +5,7 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/CSS/CSSStyleSheet.h>
#include <LibWeb/CSS/StyleSheet.h>
#include <LibWeb/DOM/Element.h>
@ -18,4 +19,9 @@ void StyleSheet::set_owner_node(DOM::Element* element)
m_owner_node = nullptr;
}
void StyleSheet::set_parent_css_style_sheet(CSSStyleSheet* parent)
{
m_parent_style_sheet = parent;
}
}

View file

@ -41,7 +41,7 @@ public:
void set_disabled(bool disabled) { m_disabled = disabled; }
CSSStyleSheet* parent_style_sheet() { return m_parent_style_sheet; }
void set_parent_css_style_sheet(CSSStyleSheet* sheet) { m_parent_style_sheet = sheet; }
void set_parent_css_style_sheet(CSSStyleSheet*);
protected:
StyleSheet() = default;
@ -49,8 +49,7 @@ protected:
private:
WeakPtr<DOM::Element> m_owner_node;
// FIXME: Use WeakPtr.
CSSStyleSheet* m_parent_style_sheet { nullptr };
WeakPtr<CSSStyleSheet> m_parent_style_sheet;
String m_title;
String m_type_string;