#include <frame.h>
Public Attributes | |
| PmObjDesc_t | od |
| struct PmFrame_s * | fo_back |
| pPmFunc_t | fo_func |
| PmMemSpace_t | fo_memspace:8 |
| uint8_t const * | fo_ip |
| pPmBlock_t | fo_blockstack |
| pPmDict_t | fo_attrs |
| pPmDict_t | fo_globals |
| pPmObj_t * | fo_sp |
| uint8_t | fo_isImport:1 |
| pPmObj_t | fo_locals [1] |
A struct that holds the execution frame of a function, including the stack, local vars and pointer to the code object.
This struct doesn't declare the stack. frame_new() is responsible for allocating the extra memory at the tail of fo_locals[] to hold both the locals and stack.
Local attributes dict (non-fast locals)
struct PmFrame_s* PmFrame_s::fo_back [read] |
Ptr to previous frame obj
Linked list of blocks
Ptr to fxn obj
Global attributes dict (pts to root frame's globals
| uint8_t const* PmFrame_s::fo_ip |
Instrxn ptr (pts into memspace)
| uint8_t PmFrame_s::fo_isImport |
Frame can be an import-frame that handles RETURN differently
Array of local vars and stack (space appended at alloc)
Mem space where func's CO comes from
Points to next empty slot in fo_locals (1 past TOS)
Obligatory obj descriptor
1.5.9