diff options
-rw-r--r-- | src/libs/solutions/tasking/tasktree.cpp | 12 | ||||
-rw-r--r-- | src/libs/solutions/tasking/tasktree.h | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/src/libs/solutions/tasking/tasktree.cpp b/src/libs/solutions/tasking/tasktree.cpp index 28c4e988e9c..972d12f1984 100644 --- a/src/libs/solutions/tasking/tasktree.cpp +++ b/src/libs/solutions/tasking/tasktree.cpp @@ -1287,7 +1287,7 @@ const GroupItem finishAllAndSuccess = workflowPolicy(WorkflowPolicy::FinishAllAn const GroupItem finishAllAndError = workflowPolicy(WorkflowPolicy::FinishAllAndError); // Keep below the above in order to avoid static initialization fiasco. -const GroupItem nullItem = GroupItem({}); +const GroupItem nullItem = Group {}; const ExecutableItem successItem = Group { finishAllAndSuccess }; const ExecutableItem errorItem = Group { finishAllAndError }; @@ -1869,10 +1869,10 @@ public: void bumpAsyncCount(); void advanceProgress(int byValue); void emitDone(DoneWith result); - void callSetupHandler(StorageBase storage, StoragePtr storagePtr) { + void callSetupHandler(const StorageBase &storage, StoragePtr storagePtr) { callStorageHandler(storage, storagePtr, &StorageHandler::m_setupHandler); } - void callDoneHandler(StorageBase storage, StoragePtr storagePtr) { + void callDoneHandler(const StorageBase &storage, StoragePtr storagePtr) { callStorageHandler(storage, storagePtr, &StorageHandler::m_doneHandler); } struct StorageHandler { @@ -1880,7 +1880,7 @@ public: StorageBase::StorageHandler m_doneHandler = {}; }; typedef StorageBase::StorageHandler StorageHandler::*HandlerPtr; // ptr to class member - void callStorageHandler(StorageBase storage, StoragePtr storagePtr, HandlerPtr ptr) + void callStorageHandler(const StorageBase &storage, StoragePtr storagePtr, HandlerPtr ptr) { const auto it = m_storageHandlers.constFind(storage); if (it == m_storageHandlers.constEnd()) @@ -3525,8 +3525,8 @@ int TaskTree::progressValue() const */ void TaskTree::setupStorageHandler(const StorageBase &storage, - StorageBase::StorageHandler setupHandler, - StorageBase::StorageHandler doneHandler) + const StorageBase::StorageHandler &setupHandler, + const StorageBase::StorageHandler &doneHandler) { auto it = d->m_storageHandlers.find(storage); if (it == d->m_storageHandlers.end()) { diff --git a/src/libs/solutions/tasking/tasktree.h b/src/libs/solutions/tasking/tasktree.h index 923ec2ed50b..55a2ac1a22d 100644 --- a/src/libs/solutions/tasking/tasktree.h +++ b/src/libs/solutions/tasking/tasktree.h @@ -359,7 +359,7 @@ private: static_assert(isR || isV, "Group setup handler needs to take no arguments and has to return void or SetupResult. " "The passed handler doesn't fulfill these requirements."); - return [handler] { + return [handler = std::move(handler)] { if constexpr (isR) return std::invoke(handler); std::invoke(handler); @@ -381,7 +381,7 @@ private: "Group done handler needs to take (DoneWith) or (void) as an argument and has to " "return void, bool or DoneResult. Alternatively, it may be of DoneResult type. " "The passed handler doesn't fulfill these requirements."); - return [handler](DoneWith result) { + return [handler = std::move(handler)](DoneWith result) { if constexpr (isDoneResultType) return handler; if constexpr (isRD) @@ -565,7 +565,7 @@ private: static_assert(isR || isV, "Task setup handler needs to take (Task &) as an argument and has to return void or " "SetupResult. The passed handler doesn't fulfill these requirements."); - return [handler](TaskInterface &taskInterface) { + return [handler = std::move(handler)](TaskInterface &taskInterface) { Adapter &adapter = static_cast<Adapter &>(taskInterface); if constexpr (isR) return std::invoke(handler, *adapter.task()); @@ -599,7 +599,7 @@ private: "(DoneWith) or (void) as arguments and has to return void, bool or DoneResult. " "Alternatively, it may be of DoneResult type. " "The passed handler doesn't fulfill these requirements."); - return [handler](const TaskInterface &taskInterface, DoneWith result) { + return [handler = std::move(handler)](const TaskInterface &taskInterface, DoneWith result) { if constexpr (isDoneResultType) return handler; const Adapter &adapter = static_cast<const Adapter &>(taskInterface); @@ -700,8 +700,8 @@ Q_SIGNALS: private: void setupStorageHandler(const StorageBase &storage, - StorageBase::StorageHandler setupHandler, - StorageBase::StorageHandler doneHandler); + const StorageBase::StorageHandler &setupHandler, + const StorageBase::StorageHandler &doneHandler); template <typename StorageStruct, typename Handler> StorageBase::StorageHandler wrapHandler(Handler &&handler) { return [handler](void *voidStruct) { |