From 6f1603a08822d224528e43f09a5d0c27fbcdb107 Mon Sep 17 00:00:00 2001 From: Giovanni De Toni Date: Tue, 11 Jul 2017 17:45:10 +0200 Subject: [PATCH] Fix memory leak caused by wrong memory management of CSignal static member variables. --- src/shogun/base/init.cpp | 6 ++++++ src/shogun/lib/Signal.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/shogun/base/init.cpp b/src/shogun/base/init.cpp index f1ef1fd8491..a3cedec786a 100644 --- a/src/shogun/base/init.cpp +++ b/src/shogun/base/init.cpp @@ -35,6 +35,8 @@ shogun::CMap* sg_mallocs=NULL; #include #endif +#include + namespace shogun { Parallel* sg_parallel=NULL; @@ -122,6 +124,10 @@ namespace shogun SG_UNREF(sg_parallel); SG_UNREF(sg_io); + delete CSignal::m_subscriber; + delete CSignal::m_observable; + delete CSignal::m_subject; + #ifdef HAVE_PROTOBUF ::google::protobuf::ShutdownProtobufLibrary(); #endif diff --git a/src/shogun/lib/Signal.h b/src/shogun/lib/Signal.h index b6e5c914a13..0b2e33efbe7 100644 --- a/src/shogun/lib/Signal.h +++ b/src/shogun/lib/Signal.h @@ -90,7 +90,7 @@ namespace shogun private: /** Active signal */ static bool m_active; - + public: /** Observable */ static SGSubjectS * m_subject; static SGObservableS * m_observable;