aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/traceback.c
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2021-04-01 16:00:31 +0100
committerGitHub <noreply@github.com>2021-04-01 16:00:31 +0100
commitfcb55c0037baab6f98f91ee38ce84b6f874f034a (patch)
tree29e1499f2f77ad8a4c76d5484517f46ac4fe8313 /Python/traceback.c
parent2ac0515027699b5694d9a6ff40f1ddaba82c74c2 (diff)
downloadcpython-fcb55c0037baab6f98f91ee38ce84b6f874f034a.tar.gz
cpython-fcb55c0037baab6f98f91ee38ce84b6f874f034a.zip
bpo-27129: Use instruction offsets, not byte offsets, in bytecode and internally. (GH-25069)
* Use instruction offset, rather than bytecode offset. Streamlines interpreter dispatch a bit, and removes most EXTENDED_ARGs for jumps. * Change some uses of PyCode_Addr2Line to PyFrame_GetLineNumber
Diffstat (limited to 'Python/traceback.c')
-rw-r--r--Python/traceback.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/Python/traceback.c b/Python/traceback.c
index 9363d4eb1b5..6c0cdfa7e7a 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -233,7 +233,7 @@ _PyTraceBack_FromFrame(PyObject *tb_next, PyFrameObject *frame)
assert(tb_next == NULL || PyTraceBack_Check(tb_next));
assert(frame != NULL);
- return tb_create_raw((PyTracebackObject *)tb_next, frame, frame->f_lasti,
+ return tb_create_raw((PyTracebackObject *)tb_next, frame, frame->f_lasti*2,
PyFrame_GetLineNumber(frame));
}
@@ -763,8 +763,7 @@ dump_frame(int fd, PyFrameObject *frame)
PUTS(fd, "???");
}
- /* PyFrame_GetLineNumber() was introduced in Python 2.7.0 and 3.2.0 */
- int lineno = PyCode_Addr2Line(code, frame->f_lasti);
+ int lineno = PyFrame_GetLineNumber(frame);
PUTS(fd, ", line ");
if (lineno >= 0) {
_Py_DumpDecimal(fd, (size_t)lineno);