diff options
author | Lars Knoll <[email protected]> | 2014-11-13 12:14:09 +0100 |
---|---|---|
committer | Simon Hausmann <[email protected]> | 2014-11-21 16:36:24 +0100 |
commit | b943d80dd90dec1a8b7802b826ad89e924cead05 (patch) | |
tree | a7edf71a76757a6dcb623e4929419a57a58a5523 | |
parent | cf7bd35a93f220cb1348f7654df9c6f27b590790 (diff) |
Remove the executioncontext in a few more places where it's not needed
Change-Id: I4c92c7bc9d94d8265e306f45d863fdc080a5e2a6
Reviewed-by: Simon Hausmann <[email protected]>
-rw-r--r-- | src/qml/jsruntime/qv4regexpobject.cpp | 13 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4regexpobject_p.h | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4script_p.h | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4sequenceobject.cpp | 14 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4stringobject.cpp | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4value.cpp | 9 | ||||
-rw-r--r-- | src/qml/qml/qqmljavascriptexpression.cpp | 9 | ||||
-rw-r--r-- | src/qml/qml/qqmljavascriptexpression_p.h | 6 | ||||
-rw-r--r-- | src/qml/qml/qqmlxmlhttprequest.cpp | 5 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgcontext.cpp | 1 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp | 11 |
11 files changed, 31 insertions, 45 deletions
diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index ce9970459c..c327437bdf 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -178,10 +178,9 @@ void RegExpObject::markObjects(Heap::Base *that, ExecutionEngine *e) Object::markObjects(that, e); } -Property *RegExpObject::lastIndexProperty(ExecutionContext *ctx) +Property *RegExpObject::lastIndexProperty() { - Q_UNUSED(ctx); - Q_ASSERT(0 == internalClass()->find(ctx->d()->engine->id_lastIndex)); + Q_ASSERT(0 == internalClass()->find(engine()->id_lastIndex)); return propertyAt(0); } @@ -362,9 +361,9 @@ ReturnedValue RegExpPrototype::method_exec(CallContext *ctx) return Encode::undefined(); QString s = arg->stringValue()->toQString(); - int offset = r->global() ? r->lastIndexProperty(ctx)->value.toInt32() : 0; + int offset = r->global() ? r->lastIndexProperty()->value.toInt32() : 0; if (offset < 0 || offset > s.length()) { - r->lastIndexProperty(ctx)->value = Primitive::fromInt32(0); + r->lastIndexProperty()->value = Primitive::fromInt32(0); return Encode::null(); } @@ -375,7 +374,7 @@ ReturnedValue RegExpPrototype::method_exec(CallContext *ctx) regExpCtor->d()->clearLastMatch(); if (result == -1) { - r->lastIndexProperty(ctx)->value = Primitive::fromInt32(0); + r->lastIndexProperty()->value = Primitive::fromInt32(0); return Encode::null(); } @@ -401,7 +400,7 @@ ReturnedValue RegExpPrototype::method_exec(CallContext *ctx) dd->lastMatchEnd = matchOffsets[1]; if (r->global()) - r->lastIndexProperty(ctx)->value = Primitive::fromInt32(matchOffsets[1]); + r->lastIndexProperty()->value = Primitive::fromInt32(matchOffsets[1]); return array.asReturnedValue(); } diff --git a/src/qml/jsruntime/qv4regexpobject_p.h b/src/qml/jsruntime/qv4regexpobject_p.h index a6a5587ca5..cd1cf4f578 100644 --- a/src/qml/jsruntime/qv4regexpobject_p.h +++ b/src/qml/jsruntime/qv4regexpobject_p.h @@ -103,7 +103,7 @@ struct RegExpObject: Object { void init(ExecutionEngine *engine); - Property *lastIndexProperty(ExecutionContext *ctx); + Property *lastIndexProperty(); QRegExp toQRegExp() const; QString toString() const; QString source() const; diff --git a/src/qml/jsruntime/qv4script_p.h b/src/qml/jsruntime/qv4script_p.h index 0c54c24f8e..14c617b554 100644 --- a/src/qml/jsruntime/qv4script_p.h +++ b/src/qml/jsruntime/qv4script_p.h @@ -45,8 +45,6 @@ class QQmlContextData; namespace QV4 { -struct ExecutionContext; - struct ContextStateSaver { ExecutionContext *savedContext; bool strictMode; diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index dd1f7033de..a2de296e88 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -49,15 +49,15 @@ QT_BEGIN_NAMESPACE using namespace QV4; // helper function to generate valid warnings if errors occur during sequence operations. -static void generateWarning(QV4::ExecutionContext *ctx, const QString& description) +static void generateWarning(QV4::ExecutionEngine *v4, const QString& description) { - QQmlEngine *engine = ctx->d()->engine->v8Engine->engine(); + QQmlEngine *engine = v4->v8Engine->engine(); if (!engine) return; QQmlError retn; retn.setDescription(description); - QV4::StackFrame frame = ctx->d()->engine->currentStackFrame(); + QV4::StackFrame frame = v4->currentStackFrame(); retn.setLine(frame.line); retn.setUrl(QUrl(frame.source)); @@ -190,7 +190,7 @@ public: { /* Qt containers have int (rather than uint) allowable indexes. */ if (index > INT_MAX) { - generateWarning(engine()->currentContext(), QLatin1String("Index out of range during indexed get")); + generateWarning(engine(), QLatin1String("Index out of range during indexed get")); if (hasProperty) *hasProperty = false; return Encode::undefined(); @@ -221,7 +221,7 @@ public: /* Qt containers have int (rather than uint) allowable indexes. */ if (index > INT_MAX) { - generateWarning(engine()->currentContext(), QLatin1String("Index out of range during indexed set")); + generateWarning(engine(), QLatin1String("Index out of range during indexed set")); return; } @@ -259,7 +259,7 @@ public: { /* Qt containers have int (rather than uint) allowable indexes. */ if (index > INT_MAX) { - generateWarning(engine()->currentContext(), QLatin1String("Index out of range during indexed query")); + generateWarning(engine(), QLatin1String("Index out of range during indexed query")); return QV4::Attr_Invalid; } if (d()->isReference) { @@ -411,7 +411,7 @@ public: quint32 newLength = ctx->d()->callData->args[0].toUInt32(); /* Qt containers have int (rather than uint) allowable indexes. */ if (newLength > INT_MAX) { - generateWarning(ctx, QLatin1String("Index out of range during length set")); + generateWarning(scope.engine, QLatin1String("Index out of range during length set")); return QV4::Encode::undefined(); } /* Read the sequence from the QObject property if we're a reference */ diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp index d571584310..e15ab50e80 100644 --- a/src/qml/jsruntime/qv4stringobject.cpp +++ b/src/qml/jsruntime/qv4stringobject.cpp @@ -230,7 +230,7 @@ static QString getThisString(ExecutionContext *ctx) if (StringObject *thisString = t->asStringObject()) return thisString->d()->value.stringValue()->toQString(); if (t->isUndefined() || t->isNull()) { - ctx->engine()->throwTypeError(); + scope.engine->throwTypeError(); return QString(); } return t->toQString(); @@ -517,7 +517,7 @@ ReturnedValue StringPrototype::method_replace(CallContext *ctx) offset = qMax(offset + 1, matchOffsets[oldSize + 1]); } if (regExp->global()) - regExp->lastIndexProperty(ctx)->value = Primitive::fromUInt32(0); + regExp->lastIndexProperty()->value = Primitive::fromUInt32(0); numStringMatches = nMatchOffsets / (regExp->value()->captureCount() * 2); numCaptures = regExp->value()->captureCount(); } else { diff --git a/src/qml/jsruntime/qv4value.cpp b/src/qml/jsruntime/qv4value.cpp index cd44d93f42..d1289bba7f 100644 --- a/src/qml/jsruntime/qv4value.cpp +++ b/src/qml/jsruntime/qv4value.cpp @@ -88,8 +88,7 @@ double Value::toNumberImpl() const if (isString()) return RuntimeHelpers::stringToNumber(stringValue()->toQString()); { - ExecutionContext *ctx = objectValue()->internalClass()->engine->currentContext(); - Scope scope(ctx); + Scope scope(managed()->engine()); ScopedValue prim(scope, RuntimeHelpers::toPrimitive(ValueRef::fromRawValue(this), NUMBER_HINT)); if (scope.engine->hasException) return 0; @@ -124,8 +123,7 @@ QString Value::toQStringNoThrow() const if (isString()) return stringValue()->toQString(); { - ExecutionContext *ctx = objectValue()->internalClass()->engine->currentContext(); - Scope scope(ctx); + Scope scope(managed()->engine()); ScopedValue ex(scope); bool caughtException = false; ScopedValue prim(scope, RuntimeHelpers::toPrimitive(ValueRef::fromRawValue(this), STRING_HINT)); @@ -177,8 +175,7 @@ QString Value::toQString() const if (isString()) return stringValue()->toQString(); { - ExecutionContext *ctx = objectValue()->internalClass()->engine->currentContext(); - Scope scope(ctx); + Scope scope(managed()->engine()); ScopedValue prim(scope, RuntimeHelpers::toPrimitive(ValueRef::fromRawValue(this), STRING_HINT)); return prim->toQString(); } diff --git a/src/qml/qml/qqmljavascriptexpression.cpp b/src/qml/qml/qqmljavascriptexpression.cpp index 55fc193abd..6a3e0d4a73 100644 --- a/src/qml/qml/qqmljavascriptexpression.cpp +++ b/src/qml/qml/qqmljavascriptexpression.cpp @@ -76,9 +76,9 @@ void QQmlDelayedError::setErrorObject(QObject *object) m_error.setObject(object); } -void QQmlDelayedError::catchJavaScriptException(QV4::ExecutionContext *context) +void QQmlDelayedError::catchJavaScriptException(QV4::ExecutionEngine *engine) { - m_error = context->engine()->catchExceptionAsQmlError(); + m_error = engine->catchExceptionAsQmlError(); } @@ -147,10 +147,9 @@ QV4::ReturnedValue QQmlJavaScriptExpression::evaluate(QQmlContextData *context, QV4::ExecutionEngine *v4 = QV8Engine::getV4(ep->v8engine()); QV4::Scope scope(v4); QV4::ScopedValue result(scope, QV4::Primitive::undefinedValue()); - QV4::ExecutionContext *ctx = v4->currentContext(); callData->thisObject = v4->globalObject; if (scopeObject()) { - QV4::ScopedValue value(scope, QV4::QObjectWrapper::wrap(ctx->d()->engine, scopeObject())); + QV4::ScopedValue value(scope, QV4::QObjectWrapper::wrap(v4, scopeObject())); if (value->isObject()) callData->thisObject = value; } @@ -160,7 +159,7 @@ QV4::ReturnedValue QQmlJavaScriptExpression::evaluate(QQmlContextData *context, if (watcher.wasDeleted()) scope.engine->catchException(); // ignore exception else - delayedError()->catchJavaScriptException(ctx); + delayedError()->catchJavaScriptException(scope.engine); if (isUndefined) *isUndefined = true; } else { diff --git a/src/qml/qml/qqmljavascriptexpression_p.h b/src/qml/qml/qqmljavascriptexpression_p.h index 2c78a745fc..dc48c2458d 100644 --- a/src/qml/qml/qqmljavascriptexpression_p.h +++ b/src/qml/qml/qqmljavascriptexpression_p.h @@ -52,10 +52,6 @@ QT_BEGIN_NAMESPACE -namespace QV4 { -struct ExecutionContext; -} - class QQmlDelayedError { public: @@ -81,7 +77,7 @@ public: void setErrorObject(QObject *object); // Call only from catch(...) -- will re-throw if no JS exception - void catchJavaScriptException(QV4::ExecutionContext *context); + void catchJavaScriptException(QV4::ExecutionEngine *engine); private: diff --git a/src/qml/qml/qqmlxmlhttprequest.cpp b/src/qml/qml/qqmlxmlhttprequest.cpp index 9b1607c7ad..0083d2353c 100644 --- a/src/qml/qml/qqmlxmlhttprequest.cpp +++ b/src/qml/qml/qqmlxmlhttprequest.cpp @@ -1547,18 +1547,17 @@ const QByteArray &QQmlXMLHttpRequest::rawResponseBody() const void QQmlXMLHttpRequest::dispatchCallbackImpl(const ValueRef me) { - ExecutionContext *ctx = v4->currentContext(); QV4::Scope scope(v4); Scoped<Object> o(scope, me); if (!o) { - ctx->engine()->throwError(QStringLiteral("QQmlXMLHttpRequest: internal error: empty ThisObject")); + v4->throwError(QStringLiteral("QQmlXMLHttpRequest: internal error: empty ThisObject")); return; } ScopedString s(scope, v4->newString(QStringLiteral("ThisObject"))); Scoped<Object> thisObj(scope, o->get(s.getPointer())); if (!thisObj) { - ctx->engine()->throwError(QStringLiteral("QQmlXMLHttpRequest: internal error: empty ThisObject")); + v4->throwError(QStringLiteral("QQmlXMLHttpRequest: internal error: empty ThisObject")); return; } diff --git a/src/quick/scenegraph/qsgcontext.cpp b/src/quick/scenegraph/qsgcontext.cpp index 2a0fae9f72..50db3883a5 100644 --- a/src/quick/scenegraph/qsgcontext.cpp +++ b/src/quick/scenegraph/qsgcontext.cpp @@ -161,6 +161,7 @@ public: , m_time(0) , m_vsync(0) , m_mode(VSyncMode) + , m_lag(0) , m_bad(0) , m_good(0) { diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index 2a01a3493b..54cb0e586a 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -2303,8 +2303,7 @@ static inline bool evaluate_error(QV8Engine *engine, const QV4::ValueRef o, cons QV4::Script program(QV8Engine::getV4(engine)->rootContext, functionSource); program.inheritContext = true; - QV4::ExecutionContext *ctx = QV8Engine::getV4(engine)->currentContext(); - QV4::Scope scope(ctx); + QV4::Scope scope(QV8Engine::getV4(engine)); QV4::Scoped<QV4::FunctionObject> function(scope, program.run()); if (scope.engine->hasException) { @@ -2331,8 +2330,7 @@ static inline bool evaluate_value(QV8Engine *engine, const QV4::ValueRef o, QV4::Script program(QV8Engine::getV4(engine)->rootContext, functionSource); program.inheritContext = true; - QV4::ExecutionContext *ctx = QV8Engine::getV4(engine)->currentContext(); - QV4::Scope scope(ctx); + QV4::Scope scope(QV8Engine::getV4(engine)); QV4::Scoped<QV4::FunctionObject> function(scope, program.run()); if (scope.engine->hasException) { @@ -2360,10 +2358,9 @@ static inline QV4::ReturnedValue evaluate(QV8Engine *engine, const QV4::ValueRef QString functionSource = QLatin1String("(function(object) { return ") + QLatin1String(source) + QLatin1String(" })"); - QV4::ExecutionContext *ctx = QV8Engine::getV4(engine)->currentContext(); - QV4::Scope scope(ctx); + QV4::Scope scope(QV8Engine::getV4(engine)); - QV4::Script program(QV8Engine::getV4(engine)->rootContext, functionSource); + QV4::Script program(scope.engine->rootContext, functionSource); program.inheritContext = true; QV4::Scoped<QV4::FunctionObject> function(scope, program.run()); |