NAME
src/pmc/imageiofreeze.pmc - ImageIOFreeze PMC
DESCRIPTION
Freezes other PMCs.
FUNCTIONS
static opcode_t * GET_VISIT_CURSOR(const PMC *pmc)
Get the buffer cursor.
Buffer relocations are handled.
static void SET_VISIT_CURSOR(PMC *pmc, const char *cursor)
Set the buffer cursor.
Buffer relocations are handled.
static void INC_VISIT_CURSOR(PMC *pmc, UINTVAL inc)
Increment the buffer cursor.
Buffer relocations are handled.
static void create_buffer(PARROT_INTERP, PMC *pmc, PMC *info)
Allocate the image buffer.
static void ensure_buffer_size(PARROT_INTERP, PMC *io, size_t len)
Checks the size of the buffer to see if it can accommodate static UINTVAL check_seen(PARROT_INTERP, PMC *self, PMC *v)
Check the seen hash to prevent duplicate serialization.
len
more bytes.
If not,
expands the buffer.
VTABLES
void init()
Initializes the PMC.
void destroy()
Destroys the PMC.
void mark()
Marks the PMC as alive.
STRING *get_string()
Returns the content of the image as a string.
void *get_pointer()
Returns the seen hash.
VTABLE INTVAL get_integer()
Returns the flags describing the visit action.
VTABLE void push_integer(INTVAL v)
Pushes the integer VTABLE void push_float(FLOATVAL v)
Pushes the float VTABLE void push_string(STRING *v)
Pushes the string VTABLE void push_pmc(PMC *v)
Pushes a reference to pmc void set_pointer(void *value)
Sets the constant table of this ImageIO PMC.
v
onto the end of the image.
v
onto the end of the image.
*v
onto the end of the image.
*v
onto the end of the image.
If *v
hasn't been seen yet,
it is also pushed onto the todo list.