| 16 | #[repr(C)] |
| 17 | #[derive(Copy, Clone)] |
| 18 | pub struct PyFrameObject { |
| 19 | #[cfg(py_sys_config = "Py_TRACE_REFS")] |
| 20 | pub _ob_next: *mut PyObject, |
| 21 | #[cfg(py_sys_config = "Py_TRACE_REFS")] |
| 22 | pub _ob_prev: *mut PyObject, |
| 23 | pub ob_refcnt: Py_ssize_t, |
| 24 | pub ob_type: *mut PyTypeObject, |
| 25 | pub ob_size: Py_ssize_t, |
| 26 | pub f_back: *mut PyFrameObject, /* previous frame, or NULL */ |
| 27 | pub f_code: *mut PyCodeObject, /* code segment */ |
| 28 | pub f_builtins: *mut PyObject, /* builtin symbol table (PyDictObject) */ |
| 29 | pub f_globals: *mut PyObject, /* global symbol table (PyDictObject) */ |
| 30 | pub f_locals: *mut PyObject, /* local symbol table (any mapping) */ |
| 31 | pub f_valuestack: *mut *mut PyObject, /* points after the last local */ |
| 32 | /* Next free slot in f_valuestack. Frame creation sets to f_valuestack. |
| 33 | Frame evaluation usually NULLs it, but a frame that yields sets it |
| 34 | to the current stack top. */ |
| 35 | pub f_stacktop: *mut *mut PyObject, |
| 36 | pub f_trace: *mut PyObject, /* Trace function */ |
| 37 | |
| 38 | pub f_exc_type: *mut PyObject, |
| 39 | pub f_exc_value: *mut PyObject, |
| 40 | pub f_exc_traceback: *mut PyObject, |
| 41 | |
| 42 | pub f_tstate: *mut PyThreadState, |
| 43 | |
| 44 | pub f_lasti: c_int, /* Last instruction if called */ |
| 45 | /* Call PyFrame_GetLineNumber() instead of reading this field |
| 46 | directly. As of 2.3 f_lineno is only valid when tracing is |
| 47 | active (i.e. when f_trace is set). At other times we use |
| 48 | PyCode_Addr2Line to calculate the line from the current |
| 49 | bytecode index. */ |
| 50 | pub f_lineno: c_int, /* Current line number */ |
| 51 | pub f_iblock: c_int, /* index in f_blockstack */ |
| 52 | pub f_blockstack: [PyTryBlock; CO_MAXBLOCKS], /* for try and loop blocks */ |
| 53 | pub f_localsplus: [*mut PyObject; 1], /* locals+stack, dynamically sized */ |
| 54 | } |
| 55 | |
| 56 | #[cfg_attr(windows, link(name = "pythonXY"))] |
| 57 | extern "C" { |
nothing calls this directly
no outgoing calls
no test coverage detected