diff options
author | Saturneric <[email protected]> | 2023-01-07 14:20:07 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2023-01-07 14:20:07 +0000 |
commit | 225d435423888c38e0c75f63c1d7a41283839bd5 (patch) | |
tree | 4c575375dde858e9391e585f9bf47d65090c70cc /src/core/thread/Task.h | |
parent | fix: continue to solve ubuntu 18.04 build issues (diff) | |
download | GpgFrontend-225d435423888c38e0c75f63c1d7a41283839bd5.tar.gz GpgFrontend-225d435423888c38e0c75f63c1d7a41283839bd5.zip |
feat: add advanced gnupg operations
1.fix some issues
2. add advanced gnupg operations
3. add configurations information in Gnupg Help Tab
Diffstat (limited to 'src/core/thread/Task.h')
-rw-r--r-- | src/core/thread/Task.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/core/thread/Task.h b/src/core/thread/Task.h index c94baea6..163e1507 100644 --- a/src/core/thread/Task.h +++ b/src/core/thread/Task.h @@ -80,7 +80,8 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { void AppendObject(T &&obj) { DLOG(TRACE) << "called:" << this; auto *obj_dstr = this->get_heap_ptr(sizeof(T)); - auto *ptr_heap = new ((void *)obj_dstr->p_obj) T(std::move(obj)); + new ((void *)obj_dstr->p_obj) T(std::forward<T>(obj)); + if (std::is_class_v<T>) { auto destructor = [](const void *x) { static_cast<const T *>(x)->~T(); @@ -89,7 +90,8 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { } else { obj_dstr->destroy = nullptr; } - data_objects_.push(std::move(obj_dstr)); + + data_objects_.push(obj_dstr); } /** @@ -169,16 +171,16 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable { * * @param callback The callback function to be executed. */ - Task(TaskCallback callback, DataObjectPtr data_object = nullptr); + explicit Task(TaskCallback callback, DataObjectPtr data_object = nullptr); /** * @brief Construct a new Task object * * @param runnable */ - Task( + explicit Task( TaskRunnable runnable, - TaskCallback callback = [](int, std::shared_ptr<DataObject>) {}, + TaskCallback callback = [](int, const std::shared_ptr<DataObject> &) {}, DataObjectPtr data = nullptr); /** |