-
-
Notifications
You must be signed in to change notification settings - Fork 31.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bpo-40222: "Zero cost" exception handling #25729
Changes from all commits
a414fa6
902690d
21646b1
9c9575a
3be89db
cf664f7
722b722
caa355f
4c21ddd
6a8d90c
9115cea
350334c
d6da9cb
a6b9292
9d0a6c1
ca482d0
4629a97
58b4a5a
e7a9221
062ffa4
71d95c1
e5c2c3e
7571e90
812e78f
5801089
8cb6366
4ec3417
07cd46d
3b52a3f
594a636
585f306
0f11d34
63a9b0e
133f74f
299e051
43c199d
630e755
6333f6c
e1d6e1e
73b600a
f263ee2
2f31c84
0c3fd95
b92ada2
1878117
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,18 +34,14 @@ struct _frame { | |
PyObject *f_locals; /* local symbol table (any mapping) */ | ||
PyObject **f_valuestack; /* points after the last local */ | ||
PyObject *f_trace; /* Trace function */ | ||
int f_stackdepth; /* Depth of value stack */ | ||
char f_trace_lines; /* Emit per-line trace events? */ | ||
char f_trace_opcodes; /* Emit per-opcode trace events? */ | ||
|
||
/* Borrowed reference to a generator, or NULL */ | ||
PyObject *f_gen; | ||
|
||
int f_stackdepth; /* Depth of value stack */ | ||
int f_lasti; /* Last instruction if called */ | ||
int f_lineno; /* Current line number. Only valid if non-zero */ | ||
int f_iblock; /* index in f_blockstack */ | ||
PyFrameState f_state; /* What state the frame is in */ | ||
PyTryBlock f_blockstack[CO_MAXBLOCKS]; /* for try and loop blocks */ | ||
ericsnowcurrently marked this conversation as resolved.
Show resolved
Hide resolved
|
||
char f_trace_lines; /* Emit per-line trace events? */ | ||
char f_trace_opcodes; /* Emit per-opcode trace events? */ | ||
PyObject *f_localsplus[1]; /* locals+stack, dynamically sized */ | ||
}; | ||
|
||
|
@@ -77,11 +73,6 @@ _PyFrame_New_NoTrack(PyThreadState *, PyFrameConstructor *, PyObject *); | |
|
||
/* The rest of the interface is specific for frame objects */ | ||
|
||
/* Block management functions */ | ||
|
||
PyAPI_FUNC(void) PyFrame_BlockSetup(PyFrameObject *, int, int, int); | ||
PyAPI_FUNC(PyTryBlock *) PyFrame_BlockPop(PyFrameObject *); | ||
Comment on lines
-82
to
-83
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Given that these were part of the public C-API, it would probably be worth adding a note to the What's New doc about their removal. I suppose the same may be true of |
||
|
||
/* Conversions between "fast locals" and locals in dictionary */ | ||
|
||
PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int); | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This C-API change seems worth mentioning somewhere.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check the discussion in https://bugs.python.org/issue40222