From 4a294eaa392b870aafd999869efcec1d3d9abff0 Mon Sep 17 00:00:00 2001 From: reuk Date: Wed, 6 Mar 2019 16:10:49 +0000 Subject: [PATCH] Allow moving into AsyncCallInvoker --- modules/juce_events/messages/juce_MessageManager.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/juce_events/messages/juce_MessageManager.h b/modules/juce_events/messages/juce_MessageManager.h index 4e57055b89..d3a1a5ede2 100644 --- a/modules/juce_events/messages/juce_MessageManager.h +++ b/modules/juce_events/messages/juce_MessageManager.h @@ -96,9 +96,9 @@ public: //============================================================================== /** Asynchronously invokes a function or C++11 lambda on the message thread. */ template - static void callAsync (FunctionType functionToCall) + static void callAsync (FunctionType&& functionToCall) { - new AsyncCallInvoker (functionToCall); + new AsyncCallInvoker (std::forward (functionToCall)); } /** Calls a function using the message-thread. @@ -343,8 +343,8 @@ private: template struct AsyncCallInvoker : public MessageBase { - AsyncCallInvoker (FunctionType f) : callback (f) { post(); } - void messageCallback() override { callback(); } + AsyncCallInvoker (FunctionType&& f) : callback (std::forward (f)) { post(); } + void messageCallback() override { callback(); } FunctionType callback; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AsyncCallInvoker)