diff options
author | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2014-11-11 15:08:30 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-11-12 20:44:13 +0100 |
commit | afbf1f74af678af0eda76035133406aa8883408a (patch) | |
tree | 2bc7b93256cad8691baa0079e60ba4cf2d52fa93 /src/qml/jsruntime/qv4jsonobject.cpp | |
parent | faf13a3aa0c97b7386e44d02f323a9156a733c9f (diff) |
Ported ExecutionEngine::newString and newIdentifier to Heap::String
Avoid the use of Returned<String> for newString and changed the identifier
table to use Heap::String. This required moving some code back into
Heap::String, but that's code that doesn't call back into the GC, so
allocations and therefore future object moves aren't possible.
Change-Id: I1dca3e9c12a9c56f09419af8cc8cba39fe04f720
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4jsonobject.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4jsonobject.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/qml/jsruntime/qv4jsonobject.cpp b/src/qml/jsruntime/qv4jsonobject.cpp index 000ed326cd..69bd97a65d 100644 --- a/src/qml/jsruntime/qv4jsonobject.cpp +++ b/src/qml/jsruntime/qv4jsonobject.cpp @@ -401,7 +401,7 @@ bool JsonParser::parseValue(ValueRef val) return false; DEBUG << "value: string"; END; - val = context->d()->engine->newString(value); + val = Value::fromHeapObject(context->d()->engine->newString(value)); return true; } case BeginArray: { @@ -709,7 +709,7 @@ QString Stringify::Str(const QString &key, ValueRef v) if (!!toJSON) { ScopedCallData callData(scope, 1); callData->thisObject = value; - callData->args[0] = ctx->d()->engine->newString(key); + callData->args[0] = Value::fromHeapObject(ctx->d()->engine->newString(key)); value = toJSON->call(callData); } } @@ -718,7 +718,7 @@ QString Stringify::Str(const QString &key, ValueRef v) ScopedObject holder(scope, ctx->d()->engine->newObject()); holder->put(ctx, QString(), value); ScopedCallData callData(scope, 2); - callData->args[0] = ctx->d()->engine->newString(key); + callData->args[0] = Value::fromHeapObject(ctx->d()->engine->newString(key)); callData->args[1] = value; callData->thisObject = holder; value = replacerFunction->call(callData); @@ -743,7 +743,7 @@ QString Stringify::Str(const QString &key, ValueRef v) if (value->isNumber()) { double d = value->toNumber(); - return std::isfinite(d) ? value->toString(ctx)->toQString() : QStringLiteral("null"); + return std::isfinite(d) ? value->toQString() : QStringLiteral("null"); } o = value.asReturnedValue(); @@ -892,7 +892,7 @@ ReturnedValue JsonObject::method_parse(CallContext *ctx) { Scope scope(ctx); ScopedValue v(scope, ctx->argument(0)); - QString jtext = v->toString(ctx)->toQString(); + QString jtext = v->toQString(); DEBUG << "parsing source = " << jtext; JsonParser parser(ctx, jtext.constData(), jtext.length()); |