diff --git a/src/tl/tlEventsVar.h b/src/tl/tlEventsVar.h index 4924ad11f..d84e90c84 100644 --- a/src/tl/tlEventsVar.h +++ b/src/tl/tlEventsVar.h @@ -236,7 +236,9 @@ public: return; } } - m_receivers.push_back (typename receivers::value_type (tl::weak_ptr (obj, true /*is an event*/), new event_function (f))); + m_receivers.push_back (typename receivers::value_type ()); + m_receivers.back ().first.reset (obj, true /*is an event*/); + m_receivers.back ().second.reset (new event_function (f)); } template @@ -262,7 +264,9 @@ public: return; } } - m_receivers.push_back (typename receivers::value_type (tl::weak_ptr (obj, true /*is an event*/), new event_function_with_data (f))); + m_receivers.push_back (typename receivers::value_type ()); + m_receivers.back ().first.reset (obj, true /*is an event*/); + m_receivers.back ().second.reset (new event_function_with_data (f)); } template @@ -288,7 +292,9 @@ public: return; } } - m_receivers.push_back (typename receivers::value_type (tl::weak_ptr (obj, true /*is an event*/), new generic_event_function (f))); + m_receivers.push_back (typename receivers::value_type ()); + m_receivers.back ().first.reset (obj, true /*is an event*/); + m_receivers.back ().second.reset (new generic_event_function (f)); } template @@ -314,7 +320,9 @@ public: return; } } - m_receivers.push_back (typename receivers::value_type (tl::weak_ptr (obj, true /*is an event*/), new generic_event_function_with_data (f))); + m_receivers.push_back (typename receivers::value_type ()); + m_receivers.back ().first.reset (obj, true /*is an event*/); + m_receivers.back ().second.reset (new generic_event_function_with_data (f)); } template