Pārlūkot izejas kodu

Revert "AK: Remove virtual destructors from non-virtual classes"

This reverts commit 4378d36f6701e0f4efe71ff1a301e3cd0776d5bf.
Idan Horowitz 4 gadi atpakaļ
vecāks
revīzija
f90c224fc5
2 mainītis faili ar 4 papildinājumiem un 2 dzēšanām
  1. 1 1
      AK/IntrusiveRedBlackTree.h
  2. 3 1
      AK/RedBlackTree.h

+ 1 - 1
AK/IntrusiveRedBlackTree.h

@@ -17,7 +17,7 @@ template<Integral K, typename V, IntrusiveRedBlackTreeNode<K> V::*member>
 class IntrusiveRedBlackTree : public BaseRedBlackTree<K> {
 public:
     IntrusiveRedBlackTree() = default;
-    ~IntrusiveRedBlackTree()
+    virtual ~IntrusiveRedBlackTree() override
     {
         clear();
     }

+ 3 - 1
AK/RedBlackTree.h

@@ -33,10 +33,12 @@ public:
             : key(key)
         {
         }
+        virtual ~Node() {};
     };
 
 protected:
     BaseRedBlackTree() = default; // These are protected to ensure no one instantiates the leaky base red black tree directly
+    virtual ~BaseRedBlackTree() {};
 
     void rotate_left(Node* subtree_root)
     {
@@ -416,7 +418,7 @@ template<Integral K, typename V>
 class RedBlackTree : public BaseRedBlackTree<K> {
 public:
     RedBlackTree() = default;
-    ~RedBlackTree()
+    virtual ~RedBlackTree() override
     {
         clear();
     }