diff options
Diffstat (limited to 'src/corelib/json/qjsonvalue.cpp')
-rw-r--r-- | src/corelib/json/qjsonvalue.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/corelib/json/qjsonvalue.cpp b/src/corelib/json/qjsonvalue.cpp index 0a603b958a..c16824ebd2 100644 --- a/src/corelib/json/qjsonvalue.cpp +++ b/src/corelib/json/qjsonvalue.cpp @@ -175,7 +175,24 @@ QJsonValue::QJsonValue(qint64 n) QJsonValue::QJsonValue(const QString &s) : d(0), t(String) { - stringData = *(QStringData **)(&s); + stringDataFromQStringHelper(s); +} + +/*! + \fn QJsonValue::QJsonValue(const char *s) + + Creates a value of type String with value \a s, assuming + UTF-8 encoding of the input. + + You can disable this constructor by defining \c + QT_NO_CAST_FROM_ASCII when you compile your applications. + + \since 5.3 + */ + +void QJsonValue::stringDataFromQStringHelper(const QString &string) +{ + stringData = *(QStringData **)(&string); stringData->ref.ref(); } @@ -187,8 +204,7 @@ QJsonValue::QJsonValue(QLatin1String s) { // ### FIXME: Avoid creating the temp QString below QString str(s); - stringData = *(QStringData **)(&str); - stringData->ref.ref(); + stringDataFromQStringHelper(str); } /*! |