src/eric7/UI/PythonDisViewer.py

branch
eric7
changeset 10979
960fe726594c
parent 10964
3ce89f2d4729
child 11090
f5f5f5803935
--- a/src/eric7/UI/PythonDisViewer.py	Tue Oct 15 12:07:51 2024 +0200
+++ b/src/eric7/UI/PythonDisViewer.py	Tue Oct 15 16:29:36 2024 +0200
@@ -11,6 +11,7 @@
 import dis
 import enum
 import os
+import sys
 
 from PyQt6.QtCore import Qt, QTimer, pyqtSlot
 from PyQt6.QtGui import QBrush
@@ -337,7 +338,13 @@
         fields = []
         # Column: Source code line number (right aligned)
         if instr.starts_line:
-            fields.append("{0:d}".format(instr.starts_line))
+            fields.append(
+                "{0:d}".format(
+                    instr.starts_line
+                    if sys.version_info < (3, 13)
+                    else instr.line_number
+                )
+            )
         else:
             fields.append("")
         # Column: Instruction offset from start of code sequence
@@ -514,15 +521,30 @@
             lasti = disassembly["lasti"]
             lastStartItem = None
             for instrDict in disassembly["instructions"]:
-                instr = dis.Instruction(
-                    instrDict["opname"],
-                    0,  # dummy value
-                    instrDict["arg"],
-                    "",  # dummy value
-                    instrDict["argrepr"],
-                    instrDict["offset"],
-                    instrDict["lineno"],
-                    instrDict["isJumpTarget"],
+                instr = (
+                    dis.Instruction(
+                        instrDict["opname"],
+                        0,  # dummy value
+                        instrDict["arg"],
+                        "",  # dummy value
+                        instrDict["argrepr"],
+                        instrDict["offset"],
+                        instrDict["lineno"],
+                        instrDict["isJumpTarget"],
+                    )
+                    if sys.version_info < (3, 13, 0)
+                    else dis.Instruction(
+                        instrDict["opname"],
+                        0,  # dummy value
+                        instrDict["arg"],
+                        "",  # dummy value
+                        instrDict["argrepr"],
+                        instrDict["offset"],
+                        instrDict["offset"],
+                        instrDict["starts_line"],
+                        instrDict["lineno"],
+                        instrDict["label"] if instrDict["label"] else None,
+                    )
                 )
                 if instrDict["lineno"] > 0:
                     if lastStartItem:

eric ide

mercurial