diff --git a/Userland/Libraries/LibPDF/Value.cpp b/Userland/Libraries/LibPDF/Value.cpp index 887cda9bda..63a699c295 100644 --- a/Userland/Libraries/LibPDF/Value.cpp +++ b/Userland/Libraries/LibPDF/Value.cpp @@ -9,12 +9,6 @@ namespace PDF { -Value::~Value() -{ - if (is_object()) - m_as_object->unref(); -} - Value& Value::operator=(Value const& other) { m_type = other.m_type; @@ -36,8 +30,6 @@ Value& Value::operator=(Value const& other) break; case Type::Object: m_as_object = other.m_as_object; - if (m_as_object) - m_as_object->ref(); break; } return *this; diff --git a/Userland/Libraries/LibPDF/Value.h b/Userland/Libraries/LibPDF/Value.h index 160edd68ba..33f13a0687 100644 --- a/Userland/Libraries/LibPDF/Value.h +++ b/Userland/Libraries/LibPDF/Value.h @@ -7,6 +7,7 @@ #pragma once #include +#include namespace PDF { @@ -66,7 +67,6 @@ public: : m_type(obj ? Type::Object : Type::Empty) { if (obj) { - obj->ref(); m_as_object = obj; } } @@ -75,7 +75,6 @@ public: Value(NonnullRefPtr obj) : m_type(Type::Object) { - obj->ref(); m_as_object = obj; } @@ -84,7 +83,7 @@ public: *this = other; } - ~Value(); + ~Value() = default; Value& operator=(Value const& other); @@ -179,9 +178,9 @@ private: int m_as_int; u32 m_as_ref; float m_as_float; - Object* m_as_object; }; + RefPtr m_as_object; Type m_type; };