FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpython/Include/cpython/frameobject.h at master · python-emscripten/cpython · GitHub
python-emscripten
cpython
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cpython
/
Include
/
cpython
/
frameobject.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
76 lines (56 loc) · 2.92 KB
Breadcrumbs
cpython
/
Include
/
cpython
/
frameobject.h
Copy path
File metadata and controls
76 lines (56 loc) · 2.92 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/* Frame object interface */
#ifndef
Py_CPYTHON_FRAMEOBJECT_H
# error
"this header file must not be included directly"
#endif
typedef
struct
{
int
b_type
;
/* what kind of block this is */
int
b_handler
;
/* where to jump to find handler */
int
b_level
;
/* value stack level to pop to */
}
PyTryBlock
;
struct
_frame
{
PyObject_VAR_HEAD
struct
_frame
*
f_back
;
/* previous frame, or NULL */
PyCodeObject
*
f_code
;
/* code segment */
PyObject
*
f_builtins
;
/* builtin symbol table (PyDictObject) */
PyObject
*
f_globals
;
/* global symbol table (PyDictObject) */
PyObject
*
f_locals
;
/* local symbol table (any mapping) */
PyObject
*
*
f_valuestack
;
/* points after the last local */
/* Next free slot in f_valuestack. Frame creation sets to f_valuestack.
Frame evaluation usually NULLs it, but a frame that yields sets it
to the current stack top. */
PyObject
*
*
f_stacktop
;
PyObject
*
f_trace
;
/* Trace function */
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_lasti
;
/* Last instruction if called */
/* Call PyFrame_GetLineNumber() instead of reading this field
directly. As of 2.3 f_lineno is only valid when tracing is
active (i.e. when f_trace is set). At other times we use
PyCode_Addr2Line to calculate the line from the current
bytecode index. */
int
f_lineno
;
/* Current line number */
int
f_iblock
;
/* index in f_blockstack */
char
f_executing
;
/* whether the frame is still executing */
PyTryBlock
f_blockstack
[
CO_MAXBLOCKS
];
/* for try and loop blocks */
PyObject
*
f_localsplus
[
1
];
/* locals+stack, dynamically sized */
};
/* Standard object interface */
PyAPI_DATA
(
PyTypeObject
)
PyFrame_Type
;
#define
PyFrame_Check
(
op
) Py_IS_TYPE(op, &PyFrame_Type)
PyAPI_FUNC
(
PyFrameObject
*
)
PyFrame_New
(
PyThreadState
*
,
PyCodeObject
*
,
PyObject
*
,
PyObject
*
);
/* only internal use */
PyFrameObject
*
_PyFrame_New_NoTrack
(
PyThreadState
*
,
PyCodeObject
*
,
PyObject
*
,
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
*
);
/* Conversions between "fast locals" and locals in dictionary */
PyAPI_FUNC
(
void
)
PyFrame_LocalsToFast
(
PyFrameObject
*
,
int
);
PyAPI_FUNC
(
int
)
PyFrame_FastToLocalsWithError
(
PyFrameObject
*
f
);
PyAPI_FUNC
(
void
)
PyFrame_FastToLocals
(
PyFrameObject
*
);
PyAPI_FUNC
(
void
)
_PyFrame_DebugMallocStats
(
FILE
*
out
);
PyAPI_FUNC
(
PyFrameObject
*
)
PyFrame_GetBack
(
PyFrameObject
*
frame
);
Back
|
FazBrowse Home
|
New Git URL