| parrotcode: fixed size array for PMCs only | |
| Contents | PMCs |

src/pmc/fixedpmcarray.pmc - fixed size array for PMCs only

This class, FixedPMCArray, implements an array of fixed size which stores PMCs. It puts things into Integer, Float, or String PMCs as appropriate

The flag PObj_private0_FLAG is used in the NameSpace PMC and should never be set for user arrays.

METHOD sort(PMC *cmp_func)
void init()void destroy()PMC *clone()INTVAL get_bool()INTVAL elements()INTVAL get_integer()FLOATVAL get_number()STRING *get_string()STRING *get_repr()INTVAL get_integer_keyed_int(INTVAL key)key.INTVAL get_integer_keyed(PMC *key)*key.FLOATVAL get_number_keyed_int(INTVAL key)key.FLOATVAL get_number_keyed(PMC *key)*key.STRING *get_string_keyed_int(INTVAL key)key.STRING *get_string_keyed(PMC *key)*key.PMC *get_pmc_keyed_int(INTVAL key)key.PMC *get_pmc_keyed(PMC *key)*key.void set_integer_native(INTVAL size)size elements.
Can't be used to resize an array.void set_integer_keyed_int(INTVAL key, INTVAL value)key to value.void set_integer_keyed(PMC *key, INTVAL value)key to value.void set_number_keyed_int(INTVAL key, FLOATVAL value)key to value.void set_number_keyed(PMC *key, FLOATVAL value)key to value.void set_string_keyed_int(INTVAL key, STRING *value)key to value.void set_string_keyed(PMC *key, STRING *value)key to value.void set_pmc_keyed_int(INTVAL key, PMC *src)key to *src.void set_pmc_keyed(PMC *key, PMC *value)key to value.INTVAL is_equal(PMC *value)== operation.
Compares two array to hold equal elements.PMC *slice(PMC *key, INTVAL f)key if f == 0.PMC *get_iter()INTVAL exists_keyed_int(INTVAL key)INTVAL exists_keyed_int(PMC *key)key exists; otherwise returns false.void splice(PMC *value, INTVAL offset, INTVAL count)count elements starting at offset with the elements in value.count is 0 then the elements in value will be inserted after offset. void splice(PMC *value, INTVAL offset, INTVAL count) {
if (count + offset > PMC_int_val(SELF))
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_INVALID_OPERATION,
_("FixedPMCArray: index out of bounds!"));
for (count--; count >= 0; --count) {
VTABLE_set_pmc_keyed_int(INTERP, SELF, offset + count, value);
}
}
void visit(visit_info *info)*info is the visit info, (see include/parrot/pmc_freeze.h).void freeze(visit_info *info)void thaw(visit_info *info)INTVAL defined_keyed_int(INTVAL key)key is defined; otherwise returns false.
docs/pdds/pdd17_basic_types.pod.
|
|
|