aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8valuetypewrapper.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-05-22 10:47:36 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2013-05-22 12:27:21 +0200
commitd7f2868e427299c1cb9ec33b3c1939c6ad4e78a7 (patch)
tree9e642a0f8f238c6f70afa4fb70c286a92a701b1c /src/qml/qml/v8/qv8valuetypewrapper.cpp
parent3bd678c76d8ab699e79e5a3cfe43cff2db03fb8f (diff)
Add support for generating stack traces to QV4::ExecutionEngine
This makes it possible to remove the v8::StackTrace API Change-Id: I53eee022a1030f0f6bf9a9268ca7cd3d5975724d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/v8/qv8valuetypewrapper.cpp')
-rw-r--r--src/qml/qml/v8/qv8valuetypewrapper.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/qml/qml/v8/qv8valuetypewrapper.cpp b/src/qml/qml/v8/qv8valuetypewrapper.cpp
index 9bf1169c21..9297df3d17 100644
--- a/src/qml/qml/v8/qv8valuetypewrapper.cpp
+++ b/src/qml/qml/v8/qv8valuetypewrapper.cpp
@@ -392,17 +392,11 @@ v8::Handle<v8::Value> QV8ValueTypeWrapper::Setter(v8::Handle<v8::String> propert
cacheData.valueTypeCoreIndex = index;
cacheData.valueTypePropType = p.userType();
- v8::Handle<v8::StackTrace> trace =
- v8::StackTrace::CurrentStackTrace(1,
- (v8::StackTrace::StackTraceOptions)(v8::StackTrace::kLineNumber |
- v8::StackTrace::kScriptName));
- v8::Handle<v8::StackFrame> frame = trace->GetFrame(0);
- int lineNumber = frame->GetLineNumber();
- int columnNumber = frame->GetColumn();
- QString url = frame->GetScriptName()->v4Value().toQString();
+ QV4::ExecutionEngine *v4 = QV8Engine::getV4(r->engine);
+ QV4::ExecutionEngine::StackFrame frame = v4->currentStackFrame();
newBinding = new QQmlBinding(&function, reference->object, context,
- url, qmlSourceCoordinate(lineNumber), qmlSourceCoordinate(columnNumber));
+ frame.source.url(), qmlSourceCoordinate(frame.line), qmlSourceCoordinate(frame.column));
newBinding->setTarget(reference->object, cacheData, context);
newBinding->setEvaluateFlags(newBinding->evaluateFlags() |
QQmlBinding::RequiresThisObject);