diff --git a/AK/IntrusiveRedBlackTree.h b/AK/IntrusiveRedBlackTree.h index e2ff1c2288b..1a13e45aeca 100644 --- a/AK/IntrusiveRedBlackTree.h +++ b/AK/IntrusiveRedBlackTree.h @@ -17,7 +17,7 @@ template V::*member> class IntrusiveRedBlackTree : public BaseRedBlackTree { public: IntrusiveRedBlackTree() = default; - ~IntrusiveRedBlackTree() + virtual ~IntrusiveRedBlackTree() override { clear(); } diff --git a/AK/RedBlackTree.h b/AK/RedBlackTree.h index ac6db5619ee..dbfebbad272 100644 --- a/AK/RedBlackTree.h +++ b/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 class RedBlackTree : public BaseRedBlackTree { public: RedBlackTree() = default; - ~RedBlackTree() + virtual ~RedBlackTree() override { clear(); }