diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 2b95e64cb73..dea2dc1a43f 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -1696,10 +1696,16 @@ QmlV8ObjectData QmlEnginePrivate::extractData(const QVariant &data) const if (dataMap.contains("value")) { QVariant value = dataMap.value("value"); - if (value.isNull()) + // The QVariant representation of null has changed across various Qt versions + // 5.6, 5.7: QVariant::Invalid + // 5.8: isValid(), !isNull(), type() == 51; only typeName() is unique: "std::nullptr_t" + // 5.9: isValid(), isNull(); We can then use isNull() + if (!value.isValid() || value.isNull() + || strcmp(value.typeName(), "std::nullptr_t") == 0) { objectData.value = "null"; // Yes, null is an object. - else if (value.isValid()) + } else if (value.isValid()) { objectData.expectedProperties = value.toInt(); + } } if (dataMap.contains("properties"))