aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/solutions/tasking/tasktree.cpp12
-rw-r--r--src/libs/solutions/tasking/tasktree.h12
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) {