QtScript: сбой в 64-битных окнах
Я скомпилировал Qt для 64-битной архитектуры под Windows, и все работает нормально, кроме QtScript. Следующий простой код, прекрасно работающий с 32-битным Qt для Windows, вылетает при компиляции с 64-битным Qt. Может быть, это ошибка в моем коде? Или Qt не совместим с 64-битным? Или что-то другое? Любые комментарии приветствуются.
#include <QtCore/QCoreApplication>
#include <QScriptEngine>
int main(int argc, char *argv[])
{
QCoreApplication app( argc, argv);
QScriptEngine oEngine;
oEngine.evaluate( "function foo(){var a=[[0]]; a[0][0];}" );
for(;;)
{
oEngine.evaluate( "foo" ).call();
}
}
1 ответ
Сбой происходит внутри JavaScriptCore, который является сторонним компонентом из проекта WebKit ( http://webkit.org/projects/javascript/index.html):
Visual Studio сообщает, что происходит сбой в строке 641 файла c:\Qt\4.6.1\src\3rdparty\javascriptcore\JavaScriptCore\runtime\JSObject.h и останавливается при вызове JSCell::getOwnPropertySlot (JSCell.cpp:126). Трассировка стека:
QtScriptd4.dll!QTJSC::JSValue:: получить
QtScriptd4.dll!QTJSC::JSValue:: получить
QtScriptd4.dll! QTJSC:: Переводчик:: privateExecute
QtScriptd4.dll! QTJSC:: Переводчик:: Execute
QtScriptd4.dll! QTJSC:: Функция JsFunction:: вызов
QtScriptd4.dll! QTJSC:: вызов
QtScriptd4.dll!QScriptValue:: вызов
test.exe! главная
Существует множество предупреждений о возможных 64-разрядных проблемах при создании компонента WebKit в Windows с использованием компилятора Visual C++, поэтому я подозреваю, что это не конфигурация, которая поддерживается или была отлажена.
Я обновил отчет об ошибке QT QTBUG-7344.