diff --git a/server/function_map.cc b/server/function_map.cc index c47a02d..951eb85 100644 --- a/server/function_map.cc +++ b/server/function_map.cc @@ -23,6 +23,17 @@ FunctionMap::FunctionMap(std::initializer_list il) } } + +FunctionMap::~FunctionMap() +{ + for(auto& elem : v) + { + delete elem.second; + elem.second = nullptr; + } +} + + template<> js::Value Type2String::get() { return "String"; } diff --git a/server/function_map.hh b/server/function_map.hh index cfa70c9..ae48840 100644 --- a/server/function_map.hh +++ b/server/function_map.hh @@ -147,16 +147,13 @@ public: typedef typename Return::return_type ReturnType; virtual ~Func() = default; - virtual bool isSeparator() const noexcept override - { - return false; - } + virtual bool isSeparator() const noexcept override { return false; } - Func() : fn() {} - Func( const std::function& _f ) : fn(_f) {} + + Func(const Func&) = delete; std::function fn; @@ -237,6 +234,7 @@ public: const_iterator find(const std::string&) const noexcept; FunctionMap(std::initializer_list il); + ~FunctionMap(); private: FunctionMapBase v;