diff options
author | saturneric <[email protected]> | 2024-01-17 11:39:47 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-01-17 11:39:47 +0000 |
commit | e352e8e6b8d03a24ef5d52eef3e4d370807b5bbd (patch) | |
tree | 9a59f0b573a845644afe4b8857a89c4b28bdcc0d /src/core/utils/AsyncUtils.cpp | |
parent | fix: solve the gnupg tab options info not shown issue (diff) | |
download | GpgFrontend-e352e8e6b8d03a24ef5d52eef3e4d370807b5bbd.tar.gz GpgFrontend-e352e8e6b8d03a24ef5d52eef3e4d370807b5bbd.zip |
fix: find and slove some bugs
Diffstat (limited to 'src/core/utils/AsyncUtils.cpp')
-rw-r--r-- | src/core/utils/AsyncUtils.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/core/utils/AsyncUtils.cpp b/src/core/utils/AsyncUtils.cpp index 15979f2b..6100b83d 100644 --- a/src/core/utils/AsyncUtils.cpp +++ b/src/core/utils/AsyncUtils.cpp @@ -56,14 +56,18 @@ auto RunGpgOperaAsync(GpgOperaRunnable runnable, GpgOperationCallback callback, operation, [=](const DataObjectPtr& data_object) -> int { auto custom_data_object = TransferParams(); - GpgError err = runnable(custom_data_object); - + auto err = runnable(custom_data_object); data_object->Swap({err, custom_data_object}); return 0; }, - [=](int, const DataObjectPtr& data_object) { - callback(ExtractParams<GpgError>(data_object, 0), - ExtractParams<DataObjectPtr>(data_object, 1)); + [=](int rtn, const DataObjectPtr& data_object) { + if (rtn < 0) { + callback(GPG_ERR_USER_1, + ExtractParams<DataObjectPtr>(data_object, 1)); + } else { + callback(ExtractParams<GpgError>(data_object, 0), + ExtractParams<DataObjectPtr>(data_object, 1)); + } }, TransferParams()); handler.Start(); @@ -84,9 +88,13 @@ auto RunIOOperaAsync(OperaRunnable runnable, OperationCallback callback, data_object->Swap({err, custom_data_object}); return 0; }, - [=](int, const DataObjectPtr& data_object) { - callback(ExtractParams<GFError>(data_object, 0), - ExtractParams<DataObjectPtr>(data_object, 1)); + [=](int rtn, const DataObjectPtr& data_object) { + if (rtn < 0) { + callback(-1, ExtractParams<DataObjectPtr>(data_object, 1)); + } else { + callback(ExtractParams<GFError>(data_object, 0), + ExtractParams<DataObjectPtr>(data_object, 1)); + } }, TransferParams()); handler.Start(); |