mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
bpo-44964: Add a note explaining the new semantics of f_last_i in frame objects (GH-28200)
This commit is contained in:
parent
2c3474a637
commit
fa2c0b85a8
2 changed files with 9 additions and 2 deletions
|
@ -1069,8 +1069,9 @@ 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 (this is an index into the
|
||||
bytecode string of the code object).
|
||||
: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).
|
||||
|
||||
Accessing ``f_code`` raises an :ref:`auditing event <auditing>`
|
||||
``object.__getattr__`` with arguments ``obj`` and ``"f_code"``.
|
||||
|
|
|
@ -1948,6 +1948,12 @@ Changes in the C API
|
|||
source_buf = PyBytes_AsString(source_bytes_object);
|
||||
code = Py_CompileString(source_buf, filename, Py_file_input);
|
||||
|
||||
* For ``FrameObject`` objects, the ``f_lasti`` member now represents a wordcode
|
||||
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.
|
||||
|
||||
CPython bytecode changes
|
||||
========================
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue