From b0fbbadd8362e3919538b7ab27f3d8b7a18d0ce1 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 17 Jun 2017 00:31:37 +0200 Subject: [PATCH] A small performance improvement (by avoiding intermediate objects) --- src/tl/tlEventsVar.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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