aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml
diff options
context:
space:
mode:
authorNils Jeisecke <nils.jeisecke@saltation.com>2019-01-14 10:44:34 +0100
committerNils Jeisecke <nils.jeisecke@saltation.com>2019-01-14 11:33:01 +0000
commitcfdb483613494d982a574c9334f2b21621024b1b (patch)
treee2a6f3da70d41f182b97f11c4358390aea8cd0c8 /src/qml/qml
parent0924e03e245c1d628bc7f864d6b194b137116b6e (diff)
Fix crash with qt.qml.binding.removal.info=true
For some bindings (qsTr) no actual javascript function exists and the debug output causes a null pointer access. Fixes: QTBUG-73009 Change-Id: I896fd2afd680dc5dee544a0c46ade6746f6727d8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/qml')
-rw-r--r--src/qml/qml/qqmlbinding.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp
index e38f379eb0..eea3670191 100644
--- a/src/qml/qml/qqmlbinding.cpp
+++ b/src/qml/qml/qqmlbinding.cpp
@@ -517,11 +517,14 @@ QVariant QQmlBinding::evaluate()
QString QQmlBinding::expressionIdentifier() const
{
- auto f = function();
- QString url = f->sourceFile();
- quint16 lineNumber = f->compiledFunction->location.line;
- quint16 columnNumber = f->compiledFunction->location.column;
- return url + QString::asprintf(":%u:%u", uint(lineNumber), uint(columnNumber));
+ if (auto f = function()) {
+ QString url = f->sourceFile();
+ quint16 lineNumber = f->compiledFunction->location.line;
+ quint16 columnNumber = f->compiledFunction->location.column;
+ return url + QString::asprintf(":%u:%u", uint(lineNumber), uint(columnNumber));
+ }
+
+ return QStringLiteral("[native code]");
}
void QQmlBinding::expressionChanged()