@@ -622,7 +622,7 @@ static void unregisterConsole (QtPythonConsole& console)
622622
623623static QtPythonConsole& getConsole (PyFrameObject& frame)
624624{
625- const string fileName = PyUnicode_AsUTF8 (frame. f_code ->co_filename );
625+ const string fileName = PyUnicode_AsUTF8 (PyFrame_GetCode (& frame) ->co_filename );
626626
627627 // Cas particulier : on n'exécute pas un fichier mais une chaîne de caractères => fileName vaut <string>
628628 // ce qui est peu discriminant. On l'accepte si seule une console est enregistrée.
@@ -650,15 +650,15 @@ static int tracePythonExecution (PyObject*, PyFrameObject* frame, int what, PyOb
650650 if (PyTrace_LINE == what) // Evènement "numéro de ligne" modifié (succès et erreur)
651651 {
652652 QtPythonConsole &console = getConsole (*frame);
653- console.lineProcessedCallback (PyUnicode_AsUTF8 (frame-> f_code ->co_filename ), PyFrame_GetLineNumber (frame), true , string ( ));
653+ console.lineProcessedCallback (PyUnicode_AsUTF8 (PyFrame_GetCode ( frame) ->co_filename ), PyFrame_GetLineNumber (frame), true , string ( ));
654654 } // if (PyTrace_RETURN == what)
655655 else if (PyTrace_EXCEPTION == what) // Ligne en erreur
656656 {
657657 PyObject* pystring = PyObject_Str (obj);
658- Py_DecRef (pystring);
659658 const string error= PyUnicode_AsUTF8 (pystring);
659+ Py_DecRef (pystring);
660660 QtPythonConsole &console = getConsole (*frame);
661- console.lineProcessedCallback (PyUnicode_AsUTF8 (frame-> f_code ->co_filename ), PyFrame_GetLineNumber (frame), false , error);
661+ console.lineProcessedCallback (PyUnicode_AsUTF8 (PyFrame_GetCode ( frame) ->co_filename ), PyFrame_GetLineNumber (frame), false , error);
662662 } // if (PyTrace_EXCEPTION == what)
663663 else if (PyTrace_RETURN == what) // Fin du bloc de code avec
664664 {
0 commit comments