| parrotcode: Simple Array or Subroutine Parameter Array | |
| Contents | PMCs |

src/pmc/sarray.pmc - Simple Array or Subroutine Parameter Array

Simple Array or Subroutine Parameter Array PMC.
SArray data are kept in an malloced array of HashEntrys:
start_idxshift.end_idxpush.SArrays are fixed size, implying that the first operation on it must be setting its size, and that only the most important vtable methods are implemented.
Currently SArrays are used for:

static PARROT_INLINE INTVAL ret_int(PARROT_INTERP, const HashEntry *e)*e,
returning the appropriate integer,
or raising an exception if necessary.static PARROT_INLINE FLOATVAL ret_num(PARROT_INTERP, const HashEntry *e)*e,
returning the appropriate floating-point number,
or raising an exception if necessary.static PARROT_INLINE STRING *ret_string(PARROT_INTERP, HashEntry *e)*e,
returning the appropriate Parrot string,
or raising an exception if necessary.static PARROT_INLINE PMC *ret_pmc(PARROT_INTERP, const HashEntry *e)*e,
returning the appropriate PMC,
or raising an exception if necessary.static PARROT_INLINE HashEntry *shift_entry(PARROT_INTERP, PMC *self)static PARROT_INLINE HashEntry *get_entry(PARROT_INTERP, PMC *self, INTVAL key)key.
void init()void morph(INTVAL type)morph().void mark()void destroy()PMC *clone()INTVAL get_bool()INTVAL elements()INTVAL get_integer()INTVAL type_keyed_int(INTVAL key)key.INTVAL get_integer_keyed_int(INTVAL key)key.INTVAL get_integer_keyed(PMC *key)*key.INTVAL shift_integer()FLOATVAL get_number_keyed_int(INTVAL key)key.FLOATVAL get_number_keyed(PMC *key)*key.FLOATVAL shift_float()STRING *get_string_keyed_int(INTVAL key)key.STRING *get_string_keyed(PMC *key)*key.STRING *shift_string()PMC *get_pmc_keyed_int(INTVAL key)key.PMC *get_pmc_keyed(PMC *key)*key.PMC *shift_pmc()void set_integer_native(INTVAL size)size elements.void set_integer_keyed_int(INTVAL key, INTVAL value)key to value.void push_integer(INTVAL value)value to the end of the array.void set_number_keyed_int(INTVAL key, FLOATVAL value)key to value.void push_float(FLOATVAL value)value to the end of the array.void set_string_keyed_int(INTVAL key, STRING *value)key to value.void push_string(STRING *value)*value to the end of the array.void set_pmc_keyed_int(INTVAL key, PMC *src)key to *src.void push_pmc(PMC *value)*value to the end of the array.
docs/pdds/pdd03_calling_conventions.pod.

Initial version 2003.07.04 by leo
2003.11.06 boemmels renamed HASH_ENTRY to HashEntry
|
|
|