summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization/qcborvalue_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/serialization/qcborvalue_p.h')
-rw-r--r--src/corelib/serialization/qcborvalue_p.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/corelib/serialization/qcborvalue_p.h b/src/corelib/serialization/qcborvalue_p.h
index 861b91eec0..c80abd68f5 100644
--- a/src/corelib/serialization/qcborvalue_p.h
+++ b/src/corelib/serialization/qcborvalue_p.h
@@ -153,7 +153,8 @@ public:
char *ptr = data.begin() + offset;
auto b = new (ptr) QtCbor::ByteData;
b->len = len;
- memcpy(b->byte(), block, len);
+ if (block)
+ memcpy(b->byte(), block, len);
return offset;
}
@@ -239,10 +240,14 @@ public:
appendByteData(s.latin1(), s.size(), QCborValue::String,
QtCbor::Element::StringIsAscii);
}
+ void appendAsciiString(const QString &s);
void append(const QString &s)
{
- appendByteData(reinterpret_cast<const char *>(s.constData()), s.size() * 2,
- QCborValue::String, QtCbor::Element::StringIsUtf16);
+ if (QtPrivate::isAscii(s))
+ appendAsciiString(s);
+ else
+ appendByteData(reinterpret_cast<const char *>(s.constData()), s.size() * 2,
+ QCborValue::String, QtCbor::Element::StringIsUtf16);
}
void append(const QCborValue &v)
{