NAME

src/pmc/imageiofreeze.pmc - ImageIOFreeze PMC

DESCRIPTION

Freezes other PMCs. Part of the internal serializer.

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.
static UINTVAL check_seen(PARROT_INTERP, PMC *self, PMC *v)
Check the seen hash to prevent duplicate serialization.

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 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.