summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@murrayc.com>2016-04-28 12:55:13 +0200
committerMurray Cumming <murrayc@murrayc.com>2016-04-28 12:55:13 +0200
commita3e2fe669821c548efcdf474a3dbf592cc67dfd5 (patch)
tree27cbcaa995915725d164ab81e533855a68ab8549
parent2f5d33724dd6806e4fc9b15c22ff15165a8780e9 (diff)
downloadsigc++-a3e2fe669821c548efcdf474a3dbf592cc67dfd5.tar.gz
signal_base: Do not derive from trackable.
Because we don't seem to actually use the trackable API when using these objects. There was a call to notify_callbacks(), but that cannot have done anything, because nothing registers any callbacks with the base trackable, and now cannot possibly register any callbacks, because it's no longer a trackable.
-rw-r--r--sigc++/signal_base.cc5
-rw-r--r--sigc++/signal_base.h2
2 files changed, 3 insertions, 4 deletions
diff --git a/sigc++/signal_base.cc b/sigc++/signal_base.cc
index 94841be..e0dade2 100644
--- a/sigc++/signal_base.cc
+++ b/sigc++/signal_base.cc
@@ -204,11 +204,11 @@ signal_base::signal_base() noexcept
{
}
-signal_base::signal_base(const signal_base& src) noexcept : trackable(), impl_(src.impl())
+signal_base::signal_base(const signal_base& src) noexcept : impl_(src.impl())
{
}
-signal_base::signal_base(signal_base&& src) : trackable(std::move(src)), impl_(std::move(src.impl_))
+signal_base::signal_base(signal_base&& src) : impl_(std::move(src.impl_))
{
src.impl_ = nullptr;
}
@@ -296,7 +296,6 @@ signal_base::operator=(signal_base&& src)
if (src.impl_ == impl_)
return *this;
- src.notify_callbacks();
impl_ = src.impl_;
src.impl_ = nullptr;
diff --git a/sigc++/signal_base.h b/sigc++/signal_base.h
index 0c491fc..90fca8a 100644
--- a/sigc++/signal_base.h
+++ b/sigc++/signal_base.h
@@ -289,7 +289,7 @@ protected:
*
* @ingroup signal
*/
-struct SIGC_API signal_base : public trackable
+struct SIGC_API signal_base
{
using size_type = std::size_t;