aboutsummaryrefslogtreecommitdiffstats
path: root/src/sdk/private/GFSDKPrivat.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/sdk/private/GFSDKPrivat.cpp (renamed from src/sdk/private/CommonUtils.cpp)37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/sdk/private/CommonUtils.cpp b/src/sdk/private/GFSDKPrivat.cpp
index 68afcb5f..71136535 100644
--- a/src/sdk/private/CommonUtils.cpp
+++ b/src/sdk/private/GFSDKPrivat.cpp
@@ -26,7 +26,7 @@
*
*/
-#include "CommonUtils.h"
+#include "GFSDKPrivat.h"
#include <core/utils/MemoryUtils.h>
@@ -34,6 +34,8 @@
#include "GFSDKModule.h"
+Q_LOGGING_CATEGORY(sdk, "sdk")
+
auto GFStrDup(const QString& str) -> char* {
auto utf8_str = str.toUtf8();
auto* c_str = static_cast<char*>(
@@ -58,9 +60,10 @@ auto CharArrayToQMap(char** char_array, int size) -> QMap<QString, QString> {
QMap<QString, QString> map;
for (int i = 0; i < size; i += 2) {
QString const key = GFUnStrDup(char_array[i]);
- QString const value = QString::fromUtf8(char_array[i + 1]);
+ QString const value = GFUnStrDup(char_array[i + 1]);
map.insert(key, value);
}
+
return map;
}
@@ -100,4 +103,32 @@ auto ConvertEventParamsToMap(GFModuleEventParam* params)
}
return param_map;
-} \ No newline at end of file
+}
+
+auto CharArrayToQList(char** char_array, int size) -> QStringList {
+ QStringList list;
+ for (int i = 0; i < size; ++i) {
+ if (char_array[i] != nullptr) {
+ QString value = GFUnStrDup(char_array[i]);
+ list.append(value);
+ }
+ }
+ GpgFrontend::SecureFree(char_array);
+ return list;
+}
+
+auto QListToCharArray(const QStringList& list) -> char** {
+ char** char_array = static_cast<char**>(
+ GpgFrontend::SecureMalloc(list.size() * sizeof(char*)));
+
+ int index = 0;
+ for (const QString& item : list) {
+ QByteArray value = item.toUtf8();
+ char_array[index] =
+ static_cast<char*>(GpgFrontend::SecureMalloc(value.size() + 1));
+ std::strcpy(char_array[index], value.constData());
+ index++;
+ }
+
+ return char_array;
+}