diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-09-25 15:24:50 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-28 13:33:39 +0200 |
commit | 150731fc68bcf823bec40729285813d902990cb7 (patch) | |
tree | 7af619f4bc8fac030bc162ce6ead2e2a7be86783 /src/qml/qml/v8 | |
parent | c79cc3f30d395c94d4f14b978903d7db4ad871dc (diff) |
Remove more direct QV4::Value usage
Remove Value::fromString(String *), and make
Encode safe against encoding raw Managed * pointers.
Change-Id: Ibca4668e1cbeaf85c78169d14386281659d33ef6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/v8')
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 9 | ||||
-rw-r--r-- | src/qml/qml/v8/qv8engine.cpp | 4 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index 9240834cf4..121b0fbb78 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -957,12 +957,13 @@ ReturnedValue QtObject::method_createQmlObject(SimpleCallContext *ctx) qmlerror = v4->newObject(); qmlerror->put((s = v4->newString("lineNumber")), (v = QV4::Primitive::fromInt32(error.line()))); qmlerror->put((s = v4->newString("columnNumber")), (v = QV4::Primitive::fromInt32(error.column()))); - qmlerror->put((s = v4->newString("fileName")), (v = Value::fromString(v4->newString(error.url().toString())))); - qmlerror->put((s = v4->newString("message")), (v = Value::fromString(v4->newString(error.description())))); + qmlerror->put((s = v4->newString("fileName")), (v = v4->newString(error.url().toString()))); + qmlerror->put((s = v4->newString("message")), (v = v4->newString(error.description()))); qmlerrors->putIndexed(ii, qmlerror); } - Scoped<Object> errorObject(scope, v4->newErrorObject(Value::fromString(v4->newString(errorstr)))); + v = v4->newString(errorstr); + Scoped<Object> errorObject(scope, v4->newErrorObject(v)); errorObject->put((s = v4->newString("qmlErrors")), qmlerrors); return errorObject.asReturnedValue(); } @@ -1254,7 +1255,7 @@ ReturnedValue QtObject::method_binding(SimpleCallContext *ctx) if (!f) V4THROW_TYPE("binding(): argument (binding expression) must be a function"); - return QV4::Value::fromObject(new (ctx->engine->memoryManager) BindingFunction(f)).asReturnedValue(); + return (new (ctx->engine->memoryManager) BindingFunction(f))->asReturnedValue(); } diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index c6bce579a2..97cfb50212 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -190,7 +190,7 @@ static QV4::ReturnedValue arrayFromStringList(QV8Engine *engine, const QStringLi int len = list.count(); a->arrayReserve(len); for (int ii = 0; ii < len; ++ii) { - a->arrayData[ii].value = QV4::Value::fromString(e->newString(list.at(ii))); + a->arrayData[ii].value = QV4::Encode(e->newString(list.at(ii))); a->arrayDataLen = ii + 1; } a->setArrayLengthUnchecked(len); @@ -1013,7 +1013,7 @@ int QV8Engine::consoleCountHelper(const QString &file, quint16 line, quint16 col QV4::ReturnedValue QV8Engine::toString(const QString &string) { - return QV4::Value::fromString(m_v4Engine->newString(string)).asReturnedValue(); + return QV4::Encode(m_v4Engine->newString(string)); } QT_END_NAMESPACE |