aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v4
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2012-05-30 10:24:14 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-05 04:35:50 +0200
commitc734706c69ed5b38cc97aea5be3f0553c194aa0a (patch)
treeec95a87fd3e3d9ad5d9b35c79b4beee291b99088 /src/qml/qml/v4
parent751c1ca09305a15acc37cb28cb4687e1bb32e1d2 (diff)
Delay conversion of v8 exceptions to QQmlErrors.
This conversion in relatively expensive, and not required for transient exceptions that occur during startup due to the order of binding evaluation. Change-Id: I29a16c075890c8966c0bad0a77412ad232c791bb Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com>
Diffstat (limited to 'src/qml/qml/v4')
-rw-r--r--src/qml/qml/v4/qv4bindings.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/qml/qml/v4/qv4bindings.cpp b/src/qml/qml/v4/qv4bindings.cpp
index ba90654661..ff16f3b95b 100644
--- a/src/qml/qml/v4/qv4bindings.cpp
+++ b/src/qml/qml/v4/qv4bindings.cpp
@@ -667,21 +667,18 @@ static void throwException(int id, QQmlDelayedError *error,
QV4Program *program, QQmlContextData *context,
const QString &description = QString())
{
- error->error.setUrl(context->url);
if (description.isEmpty())
- error->error.setDescription(QLatin1String("TypeError: Result of expression is not an object"));
+ error->setErrorDescription(QLatin1String("TypeError: Result of expression is not an object"));
else
- error->error.setDescription(description);
+ error->setErrorDescription(description);
if (id != 0xFF) {
quint64 e = *((quint64 *)(program->data() + program->exceptionDataOffset) + id);
- error->error.setLine((e >> 32) & 0xFFFFFFFF);
- error->error.setColumn(e & 0xFFFFFFFF);
+ error->setErrorLocation(context->url, (e >> 32) & 0xFFFFFFFF, e & 0xFFFFFFFF);
} else {
- error->error.setLine(-1);
- error->error.setColumn(-1);
+ error->setErrorLocation(context->url, -1, -1);
}
if (!context->engine || !error->addError(QQmlEnginePrivate::get(context->engine)))
- QQmlEnginePrivate::warning(context->engine, error->error);
+ QQmlEnginePrivate::warning(context->engine, error);
}
const double QV4Bindings::D32 = 4294967296.0;