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 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.
VTABLE PMC *get_iter()
Get the todo list for this freeze/thaw for iterating over.
VTABLE INTVAL get_integer()
Returns the flags describing the visit action.
VTABLE void push_integer(INTVAL v)
Pushes the integer v onto the end of the image.
VTABLE void push_float(FLOATVAL v)
Pushes the float v onto the end of the image.
VTABLE void push_string(STRING *v)
Pushes the string *v onto the end of the image.
VTABLE void push_pmc(PMC *v)
Pushes a reference to pmc *v onto the end of the image. If *v hasn't been seen yet, it is also pushed onto the todo list.
void set_pointer(void *value)
Sets the constant table of this ImageIO PMC.