From 10b4bf78da1dcdb96915506bd61a0ab1b2ea65ed Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 4 Jun 2014 16:39:55 +0100 Subject: [PATCH] Fix crash due to lack of signal disconnection. --- src/lib/log.cc | 2 +- src/lib/log.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/log.cc b/src/lib/log.cc index 52dff2982..4de6bd874 100644 --- a/src/lib/log.cc +++ b/src/lib/log.cc @@ -39,7 +39,7 @@ int const Log::TYPE_TIMING = 0x8; Log::Log () : _types (0) { - Config::instance()->Changed.connect (boost::bind (&Log::config_changed, this)); + _config_connection = Config::instance()->Changed.connect (boost::bind (&Log::config_changed, this)); config_changed (); } diff --git a/src/lib/log.h b/src/lib/log.h index 2ba273b44..94d30de4e 100644 --- a/src/lib/log.h +++ b/src/lib/log.h @@ -27,6 +27,7 @@ #include #include #include +#include /** @class Log * @brief A very simple logging class. @@ -47,16 +48,15 @@ public: void set_types (int types); -protected: - /** mutex to protect the log */ - boost::mutex _mutex; - private: virtual void do_log (std::string m) = 0; void config_changed (); + /** mutex to protect the log */ + boost::mutex _mutex; /** bit-field of log types which should be put into the log (others are ignored) */ int _types; + boost::signals2::scoped_connection _config_connection; }; class FileLog : public Log -- 2.30.2