From f90c224fc58eb5dcb7191f6fbd13d07f4deb5c47 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Fri, 23 Apr 2021 11:10:23 +0300 Subject: [PATCH] Revert "AK: Remove virtual destructors from non-virtual classes" This reverts commit 4378d36f6701e0f4efe71ff1a301e3cd0776d5bf. --- AK/IntrusiveRedBlackTree.h | 2 +- AK/RedBlackTree.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/AK/IntrusiveRedBlackTree.h b/AK/IntrusiveRedBlackTree.h index e2ff1c2288..1a13e45aec 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 ac6db5619e..dbfebbad27 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(); }