diff --git a/include/pdal/Kernel.hpp b/include/pdal/Kernel.hpp index 9d418ae530..7683f9ebc9 100644 --- a/include/pdal/Kernel.hpp +++ b/include/pdal/Kernel.hpp @@ -72,8 +72,7 @@ typedef std::shared_ptr PointViewPtr; class PDAL_DLL Kernel { public: - virtual ~Kernel() - {} + virtual ~Kernel(); // call this, to start the machine int run(int argc, const char* argv[], const std::string& appName); diff --git a/src/Kernel.cpp b/src/Kernel.cpp index 7c516a273b..5e3108db4c 100644 --- a/src/Kernel.cpp +++ b/src/Kernel.cpp @@ -71,6 +71,18 @@ Kernel::Kernel() {} +Kernel::~Kernel() +{ + for (auto & iter : m_public_options) + { + delete iter; + } + for (auto & iter : m_hidden_options) + { + delete iter; + } +} + std::ostream& operator<<(std::ostream& ostr, const Kernel& kernel) { ostr << " Name: " << kernel.getName() << std::endl;