TestLib: Fix regression in error location output
authorCaroline Chao <caroline.chao@digia.com>
Thu, 22 Aug 2013 11:44:49 +0000 (13:44 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Thu, 22 Aug 2013 12:42:11 +0000 (14:42 +0200)
Error location returned should be given in the test file not in
TestCase.qml.

Change-Id: Ifea51fe5e39890a369c4dca6754abd46d2ee9bc2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/imports/testlib/main.cpp

index 81dcaa2..6e4a397 100644 (file)
@@ -111,9 +111,9 @@ public Q_SLOTS:
         QQmlEngine *engine = qmlEngine(this);
         QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine->handle());
 
-        QVector<QV4::ExecutionEngine::StackFrame> stack = v4->stackTrace(frameIndex + 1);
-        if (stack.size() > frameIndex)
-            return QQmlV4Handle(QV4::Value::fromString(v4->newString(stack.at(frameIndex).source)));
+        QVector<QV4::ExecutionEngine::StackFrame> stack = v4->stackTrace(frameIndex + 2);
+        if (stack.size() > frameIndex + 1)
+            return QQmlV4Handle(QV4::Value::fromString(v4->newString(stack.at(frameIndex + 1).source)));
         return QQmlV4Handle();
     }
     int callerLine(int frameIndex = 0) const
@@ -121,9 +121,9 @@ public Q_SLOTS:
         QQmlEngine *engine = qmlEngine(this);
         QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine->handle());
 
-        QVector<QV4::ExecutionEngine::StackFrame> stack = v4->stackTrace(frameIndex + 1);
-        if (stack.size() > frameIndex)
-            return stack.at(frameIndex).line;
+        QVector<QV4::ExecutionEngine::StackFrame> stack = v4->stackTrace(frameIndex + 2);
+        if (stack.size() > frameIndex + 1)
+            return stack.at(frameIndex + 1).line;
         return -1;
     }
 };