From a40b7ef9f07466de64b98e3a635c42c211cd707c Mon Sep 17 00:00:00 2001 From: Victor Reijgwart Date: Sun, 30 Jun 2019 20:41:57 +0200 Subject: [PATCH] Fixed mem leak due to non-virtual ThreadSafeIndex base class destructor --- voxblox/include/voxblox/integrator/integrator_utils.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/voxblox/include/voxblox/integrator/integrator_utils.h b/voxblox/include/voxblox/integrator/integrator_utils.h index b76e0e2c2..95d04689d 100644 --- a/voxblox/include/voxblox/integrator/integrator_utils.h +++ b/voxblox/include/voxblox/integrator/integrator_utils.h @@ -23,6 +23,13 @@ class ThreadSafeIndex { public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW + // NOTE: The ThreadSafeIndex base destructor must be marked virtual. + // Otherwise the destructors of derived classes don't get called when + // derived class instances are destructed through base class pointers. + // This would result leaking memory due to derived class member + // variables not being freed. + virtual ~ThreadSafeIndex() = default; + /// returns true if index is valid, false otherwise bool getNextIndex(size_t* idx);