From ab327f2929589407595a3de95727c8ab34ddd4af Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Fri, 10 Sep 2021 16:53:42 +0100 Subject: [PATCH] bpo-44964: Correct the note about the f_lasti field (GH-28208) --- Doc/reference/datamodel.rst | 5 ++--- Doc/whatsnew/3.10.rst | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index bf3f5082fd5e..fd78c7ef3c86 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -1069,9 +1069,8 @@ Internal types :attr:`f_code` is the code object being executed in this frame; :attr:`f_locals` is the dictionary used to look up local variables; :attr:`f_globals` is used for global variables; :attr:`f_builtins` is used for built-in (intrinsic) names; - :attr:`f_lasti` gives the precise instruction (it represents a wordcode index, which - means that to get an index into the bytecode string of the code object it needs to be - multiplied by 2). + :attr:`f_lasti` gives the precise instruction (this is an index into the + bytecode string of the code object). Accessing ``f_code`` raises an :ref:`auditing event ` ``object.__getattr__`` with arguments ``obj`` and ``"f_code"``. diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index ad005dc2ed67..e5069c5d9aea 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -1952,7 +1952,8 @@ Changes in the C API offset instead of a simple offset into the bytecode string. This means that this number needs to be multiplied by 2 to be used with APIs that expect a byte offset instead (like :c:func:`PyCode_Addr2Line` for example). Notice as well that the - ``f_lasti`` member of ``FrameObject`` objects is not considered stable. + ``f_lasti`` member of ``FrameObject`` objects is not considered stable: please + use :c:func:`PyFrame_GetLineNumber` instead. CPython bytecode changes ======================== -- 2.47.3