Matt S Trout > Rakudo-Star-2012.08_001 > src/pmc/imageiofreeze.pmc

Download:
Rakudo-Star-2012.08_001.tar.gz

Annotate this POD

Source  

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.

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.

syntax highlighting: