aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8engine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/v8/qv8engine.cpp')
-rw-r--r--src/qml/qml/v8/qv8engine.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp
index ce5d3c8370..73113be9ba 100644
--- a/src/qml/qml/v8/qv8engine.cpp
+++ b/src/qml/qml/v8/qv8engine.cpp
@@ -102,20 +102,18 @@ static void saveJSValue(QDataStream &stream, const void *data)
static void restoreJSValue(QDataStream &stream, void *data)
{
QJSValue *jsv = reinterpret_cast<QJSValue*>(data);
- QJSValuePrivate *d = QJSValuePrivate::get(*jsv);
quint32 isNullOrUndefined;
stream >> isNullOrUndefined;
- // ### Optimize for the common case where we have an valid persistent
- d->persistent.clear();
-
if (isNullOrUndefined & 0x1) {
- d->unboundData = QVariant(QMetaType::VoidStar, (void *)0);
+ *jsv = QJSValue(QJSValue::NullValue);
} else if (isNullOrUndefined & 0x2) {
- d->unboundData = QVariant();
+ *jsv = QJSValue();
} else {
- d->unboundData.load(stream);
+ QVariant v;
+ v.load(stream);
+ QJSValuePrivate::setVariant(jsv, v);
}
}