diff options
Diffstat (limited to 'src/qjsonvalue.cpp')
-rw-r--r-- | src/qjsonvalue.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/qjsonvalue.cpp b/src/qjsonvalue.cpp index 9933e77..b7102c1 100644 --- a/src/qjsonvalue.cpp +++ b/src/qjsonvalue.cpp @@ -184,7 +184,7 @@ QJsonValue::QJsonValue(const QJsonArray &a) : t(Array), d(a.d) { a.compact(); - array = a.a; + base = a.a; if (d) d->ref.ref(); } @@ -196,7 +196,7 @@ QJsonValue::QJsonValue(const QJsonObject &o) : t(Object), d(o.d) { o.compact(); - object = o.o; + base = o.o; if (d) d->ref.ref(); } @@ -221,7 +221,7 @@ QJsonValue::QJsonValue(const QJsonValue &other) { t = other.t; d = other.d; - memcpy(raw, other.raw, sizeof(double)); + ui = other.ui; if (d) d->ref.ref(); @@ -332,9 +332,9 @@ QVariant QJsonValue::toVariant() const case String: return toString(); case Array: - return QJsonArray(d, array).toVariantList(); + return QJsonArray(d, static_cast<Private::Array *>(base)).toVariantList(); case Object: - return QJsonObject(d, object).toVariantMap(); + return QJsonObject(d, static_cast<Private::Object *>(base)).toVariantMap(); case Null: case Undefined: break; @@ -415,7 +415,7 @@ QJsonArray QJsonValue::toArray() const if (!d || t != Array) return QJsonArray(); - return QJsonArray(d, array); + return QJsonArray(d, static_cast<Private::Array *>(base)); } /*! @@ -428,7 +428,7 @@ QJsonObject QJsonValue::toObject() const if (!d || t != Object) return QJsonObject(); - return QJsonObject(d, object); + return QJsonObject(d, static_cast<Private::Object *>(base)); } /*! @@ -450,9 +450,11 @@ bool QJsonValue::operator==(const QJsonValue &other) const case String: return toString() == other.toString(); case Array: - return QJsonArray(d, array) == QJsonArray(other.d, other.array); + return QJsonArray(d, static_cast<Private::Array *>(base)) + == QJsonArray(other.d, static_cast<Private::Array *>(other.base)); case Object: - return QJsonObject(d, object) == QJsonObject(other.d, other.object); + return QJsonObject(d, static_cast<Private::Object *>(base)) + == QJsonObject(other.d, static_cast<Private::Object *>(other.base)); } return true; } @@ -473,12 +475,12 @@ void QJsonValue::detach() if (!d) return; - Private::Data *x = d->detach(object); + Private::Data *x = d->detach(base); x->ref.ref(); if (!d->ref.deref()) delete d; d = x; - object = static_cast<Private::Object *>(d->header->root()); + base = static_cast<Private::Object *>(d->header->root()); } |