| Index: webrtc/base/sigslot.h
|
| diff --git a/webrtc/base/sigslot.h b/webrtc/base/sigslot.h
|
| index 4534ec9dae4c4f5af97c068d1949ebf682d00c5c..45e0da216bf5c4acc09dd47f4e11c54edfbd2165 100644
|
| --- a/webrtc/base/sigslot.h
|
| +++ b/webrtc/base/sigslot.h
|
| @@ -407,15 +407,12 @@ namespace sigslot {
|
| _signal_base& operator= (_signal_base const& that);
|
|
|
| public:
|
| - _signal_base(const _signal_base& s) : _signal_base_interface(&_signal_base::do_slot_disconnect, &_signal_base::do_slot_duplicate) {
|
| + _signal_base(const _signal_base& o) : _signal_base_interface(&_signal_base::do_slot_disconnect, &_signal_base::do_slot_duplicate) {
|
| lock_block<mt_policy> lock(this);
|
| - connections_list::const_iterator it = m_connected_slots.begin();
|
| - connections_list::const_iterator itEnd = m_connected_slots.end();
|
| - while(it != itEnd)
|
| + for (const auto& connection : o.m_connected_slots)
|
| {
|
| - it->getdest()->signal_connect(this);
|
| - m_connected_slots.push_back(*it);
|
| - ++it;
|
| + connection.getdest()->signal_connect(this);
|
| + m_connected_slots.push_back(connection);
|
| }
|
| }
|
|
|
| @@ -528,13 +525,21 @@ namespace sigslot {
|
| {
|
| }
|
|
|
| + has_slots(has_slots const& o) : has_slots_interface(&has_slots::do_signal_connect, &has_slots::do_signal_disconnect, &has_slots::do_disconnect_all)
|
| + {
|
| + lock_block<mt_policy> lock(this);
|
| + for (auto* sender : o.m_senders) {
|
| + sender->slot_duplicate(&o, this);
|
| + m_senders.insert(sender);
|
| + }
|
| + }
|
| +
|
| ~has_slots()
|
| {
|
| this->disconnect_all();
|
| }
|
|
|
| private:
|
| - has_slots(has_slots const&);
|
| has_slots& operator= (has_slots const&);
|
|
|
| static void do_signal_connect(has_slots_interface* p, _signal_base_interface* sender)
|
|
|