Javascript 未使用函数中未使用的JS变量+;条件导致QQmlEngine在加载时崩溃
这一定是迄今为止我遇到的最奇怪的Qt错误,未执行函数中未使用的var会导致Javascript 未使用函数中未使用的JS变量+;条件导致QQmlEngine在加载时崩溃,javascript,qt,crash,qml,qtquick2,Javascript,Qt,Crash,Qml,Qtquick2,这一定是迄今为止我遇到的最奇怪的Qt错误,未执行函数中未使用的var会导致QQmlEngine::load()上的硬崩溃 这需要几行代码才能重现: import QtQuick 2.7 import QtQuick.Window 2.2 Window { id: main visible: true width: 500 height: 300 function foo() { var c = main.width > 1 ? 27 : -147 } }
QQmlEngine::load()
上的硬崩溃
这需要几行代码才能重现:
import QtQuick 2.7
import QtQuick.Window 2.2
Window {
id: main
visible: true
width: 500
height: 300
function foo() {
var c = main.width > 1 ? 27 : -147
}
}
它在5.7和5.7.1两个版本上都崩溃,在windoze 7 x64和Ubuntu16.04下的Qt网站上构建的“stock”GCC版本。添加一个简单的console.log(c)
可以防止崩溃。再次请注意,该函数是完全合法的,不能访问任何可疑对象,甚至不能执行它来产生崩溃。当引擎解析QML代码时,似乎出现了严重错误。条件是这里的关键,没有它它不会崩溃
除了暗示“这里发生了什么?”之外,在发布错误报告之前,我还想借此机会询问具有不同平台或Qt版本的用户它是否会影响其他人。windows 7上的msvc2013也发生了崩溃。(但可以很好地使用
控制台。log(c)
)在Windows10上崩溃,Qt5.7MingW处于运行模式,但在调试中工作良好。顺便说一句,你是否已经在bug tracker中创建了一个问题?@folibis-Windows7上的msvc2013也发生了崩溃。(但可以很好地使用控制台。log(c)
)在Windows10上崩溃,Qt5.7MingW处于运行模式,但在调试中工作良好。顺便说一句,你是否已经在bug tracker中创建了一个问题?@folibis-