QtScript: сбой в 64-битных окнах - PullRequest
4 голосов
/ 20 января 2010

Я скомпилировал 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 Ответ

3 голосов
/ 27 января 2010

Сбой происходит в 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 .

...