summaryrefslogtreecommitdiffstats
path: root/src/qjsonvalue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qjsonvalue.cpp')
-rw-r--r--src/qjsonvalue.cpp24
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());
}