diff options
author | Nils Jeisecke <nils.jeisecke@saltation.com> | 2019-01-14 10:44:34 +0100 |
---|---|---|
committer | Nils Jeisecke <nils.jeisecke@saltation.com> | 2019-01-14 11:33:01 +0000 |
commit | cfdb483613494d982a574c9334f2b21621024b1b (patch) | |
tree | e2a6f3da70d41f182b97f11c4358390aea8cd0c8 /src/qml/qml | |
parent | 0924e03e245c1d628bc7f864d6b194b137116b6e (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.cpp | 13 |
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() |