[libsigcplusplus] signal_base::insert(): Add and use help method to avoid copy/pasting.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsigcplusplus] signal_base::insert(): Add and use help method to avoid copy/pasting.
- Date: Thu, 21 Apr 2016 10:55:52 +0000 (UTC)
commit d91ca03c31b574c702419af563e023d2aea0bbfc
Author: Murray Cumming <murrayc murrayc com>
Date: Thu Apr 21 12:38:35 2016 +0200
signal_base::insert(): Add and use help method to avoid copy/pasting.
sigc++/signal_base.cc | 13 +++++++++----
sigc++/signal_base.h | 2 ++
2 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/sigc++/signal_base.cc b/sigc++/signal_base.cc
index 40e3356..8b3d4d5 100644
--- a/sigc++/signal_base.cc
+++ b/sigc++/signal_base.cc
@@ -139,12 +139,18 @@ signal_impl::erase(iterator_type i)
return slots_.erase(i);
}
+void
+signal_impl::add_notification_to_iter(const signal_impl::iterator_type& iter)
+{
+ auto si = new self_and_iter(this, iter);
+ iter->set_parent(si, &signal_impl::notify_self_and_iter_invalidated);
+}
+
signal_impl::iterator_type
signal_impl::insert(signal_impl::iterator_type i, const slot_base& slot_)
{
auto iter = slots_.insert(i, slot_);
- auto si = new self_and_iter(this, iter);
- iter->set_parent(si, ¬ify_self_and_iter_invalidated);
+ add_notification_to_iter(iter);
return iter;
}
@@ -152,8 +158,7 @@ signal_impl::iterator_type
signal_impl::insert(signal_impl::iterator_type i, slot_base&& slot_)
{
auto iter = slots_.insert(i, std::move(slot_));
- auto si = new self_and_iter(this, iter);
- iter->set_parent(si, ¬ify_self_and_iter_invalidated);
+ add_notification_to_iter(iter);
return iter;
}
diff --git a/sigc++/signal_base.h b/sigc++/signal_base.h
index d46fd02..43eb20f 100644
--- a/sigc++/signal_base.h
+++ b/sigc++/signal_base.h
@@ -177,6 +177,8 @@ private:
*/
static void notify_self_and_iter_invalidated(notifiable* d);
+ void add_notification_to_iter(const signal_impl::iterator_type& iter);
+
public:
/// The list of slots.
std::list<slot_base> slots_;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]