2010-01-20 5 views
4

J'ai compilé Qt pour l'architecture 64 bits sous Windows et tout fonctionne bien sauf QtScript. Le code simple suivant, fonctionnant parfaitement avec Qt for Windows 32 bits, se bloque s'il est compilé avec Qt 64 bits. Peut-être que c'est une erreur dans mon code? Ou Qt n'est pas compatible avec 64 bits? Ou autre chose? Tous les commentaires sont les bienvenus.QtScript: panne sur les fenêtres 64 bits

#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(); 
    } 
} 
+0

C'est bug ouvert cette semaine (peut-être même par vous =)). http://bugreports.qt.nokia.com/browse/QTBUG-7433 – Wildcat

+0

Ouvert par moi, mais ce n'est pas une réaction de Trolls encore est-il bug ou pas :(Pour autant que je sache, il leur faudra des mois pour ' Evaluer un bug et prendre une décision – grigoryvp

+0

Quelle erreur avez-vous eu lors de la panne? – funwithcoding

Répondre

3

L'accident se produit à l'intérieur JavaScriptCore, qui est une composante 3ème partie du projet WebKit (http://webkit.org/projects/javascript/index.html):

rapports Visual Studio que l'incident se produit sur la ligne 641 de c: \ Qt \ 4.6.1 \ src \ 3rdparty \ javascriptcore \ JavaScriptCore \ runtime \ JSObject.h et est arrêté lors de l'appel à JSCell :: getOwnPropertySlot (JSCell.cpp: 126). La trace de la pile est:

QtScriptd4.dll QTJSC :: JSValue :: get
QtScriptd4.dll QTJSC :: JSValue :: get
QtScriptd4.dll QTJSC :: Interprète :: privateExecute
QtScriptd4!!. dll! QTJSC :: interprète :: execute
QtScriptd4.dll! QTJSC :: fonctionJS :: appeler
QtScriptd4.dll! QTJSC :: appelez
QtScriptd4.dll! QScriptValue :: appelez
test.exe!

principale

Il y a beaucoup d'avertissements à propos de problèmes 64 bits possibles lors de la construction du composant WebKit sur Windows à l'aide du compilateur Visual C++, donc je suppose que ce n'est pas une configuration qui est prise en charge ou a été déboguée pour le moment.

J'ai mis à jour le rapport de bogue QT QTBUG-7344.

Questions connexes