Browse Source

LibJS: Allow constructing a GCPtr from another GCPtr of convertible type

Matthew Olsson 2 years ago
parent
commit
5094dcf615
1 changed files with 12 additions and 1 deletions
  1. 12 1
      Userland/Libraries/LibJS/Heap/GCPtr.h

+ 12 - 1
Userland/Libraries/LibJS/Heap/GCPtr.h

@@ -100,6 +100,18 @@ public:
     {
     }
 
+    GCPtr(GCPtr<T> const& other)
+        : m_ptr(other.ptr())
+    {
+    }
+
+    template<typename U>
+    GCPtr(GCPtr<U> const& other)
+    requires(IsConvertible<U*, T*>)
+        : m_ptr(other.ptr())
+    {
+    }
+
     GCPtr(NonnullGCPtr<T> const& other)
         : m_ptr(other.ptr())
     {
@@ -117,7 +129,6 @@ public:
     {
     }
 
-    GCPtr(GCPtr const&) = default;
     GCPtr& operator=(GCPtr const&) = default;
 
     template<typename U>