From 85adc666efac745623cf9e5eaba3bd65733c4b66 Mon Sep 17 00:00:00 2001 From: peri4 Date: Mon, 13 May 2024 22:29:38 +0300 Subject: [PATCH] more protection --- CMakeLists.txt | 2 +- libs/piqt/piqt.h | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 31b84aa..e965e34 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_policy(SET CMP0072 NEW) # FindOpenGL prefers GLVND by default project(QAD) set(QAD_MAJOR 2) set(QAD_MINOR 28) -set(QAD_REVISION 0) +set(QAD_REVISION 1) set(QAD_SUFFIX ) set(QAD_COMPANY SHS) set(QAD_DOMAIN org.SHS) diff --git a/libs/piqt/piqt.h b/libs/piqt/piqt.h index 1079727..0ac280c 100644 --- a/libs/piqt/piqt.h +++ b/libs/piqt/piqt.h @@ -55,21 +55,26 @@ QAD_PIQT_EXPORT PIVariant Q2PIVariant(const QVariant & v); // inline QString PI2QString(const PIString & v) {return QString::fromLocal8Bit(v.data());} inline QString PI2QString(const PIString & v) { + if (v.isEmpty()) return QString(); return QString::fromUtf8(v.dataUTF8()); } #if PIP_VERSION >= PIP_MAKE_VERSION(2, 38, 0) inline QString PI2QString(const PIConstChars & v) { + if (v.isEmpty()) return QString(); return QString::fromLatin1(v.data(), v.length()); } #endif // inline PIString Q2PIString(const QString & v) {return PIString(v.toLocal8Bit().data());} inline PIString Q2PIString(const QString & v) { - return PIString::fromUTF8(v.toUtf8().data()); + if (v.isEmpty()) return PIString(); + auto qba = v.toUtf8(); + return PIString::fromUTF8(qba.constData(), qba.size()); } inline QStringList PI2QStringList(const PIStringList & v) { + if (v.isEmpty()) return QStringList(); QStringList ret; for (const auto & s: v) ret << PI2QString(s); @@ -77,6 +82,7 @@ inline QStringList PI2QStringList(const PIStringList & v) { } inline PIStringList Q2PIStringList(const QStringList & v) { + if (v.isEmpty()) return PIStringList(); PIStringList ret; ret.reserve(v.size()); for (const auto & s: v) @@ -86,10 +92,12 @@ inline PIStringList Q2PIStringList(const QStringList & v) { inline QByteArray PI2QByteArray(const PIByteArray & v) { + if (v.isEmpty()) return QByteArray(); return QByteArray((const char *)(v.data()), v.size_s()); } inline PIByteArray Q2PIByteArray(const QByteArray & v) { + if (v.isEmpty()) return PIByteArray(); return PIByteArray(v.constData(), v.size()); }