#include "pplib.h" pparray * pparray_create (const ppobj *stackpos, size_t size, ppheap *heap) { pparray *array; array = (pparray *)ppstruct_take(heap, sizeof(pparray)); array->data = (ppobj *)ppstruct_take(heap, size * sizeof(ppobj)); // separate chunk, alignment requirements warning otherwise array->size = size; memcpy(array->data, stackpos, size * sizeof(ppobj)); return array; } ppobj * pparray_get_obj (pparray *array, size_t index) { return pparray_get(array, index); } ppobj * pparray_rget_obj (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_obj(obj) : NULL; } int pparray_get_bool (pparray *array, size_t index, int *v) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_bool(obj, *v) : 0; } int pparray_rget_bool (pparray *array, size_t index, int *v) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_bool(obj, *v) : 0; } int pparray_get_int (pparray *array, size_t index, ppint *v) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_int(obj, *v) : 0; } int pparray_rget_int (pparray *array, size_t index, ppint *v) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_int(obj, *v) : 0; } int pparray_get_uint (pparray *array, size_t index, ppuint *v) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_uint(obj, *v) : 0; } int pparray_rget_uint (pparray *array, size_t index, ppuint *v) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_uint(obj, *v) : 0; } int pparray_get_num (pparray *array, size_t index, ppnum *v) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_num(obj, *v) : 0; } int pparray_rget_num (pparray *array, size_t index, ppnum *v) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_num(obj, *v) : 0; } ppname * pparray_get_name (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_name(obj) : NULL; } ppname * pparray_rget_name (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_name(obj) : NULL; } ppstring * pparray_get_string (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_string(obj) : NULL; } ppstring * pparray_rget_string (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_string(obj) : NULL; } pparray * pparray_get_array (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_array(obj) : NULL; } pparray * pparray_rget_array (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_array(obj) : NULL; } ppdict * pparray_get_dict (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_dict(obj) : NULL; } ppdict * pparray_rget_dict (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_dict(obj) : NULL; } /* ppstream * pparray_get_stream (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_stream(obj) : NULL; } */ ppstream * pparray_rget_stream (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_stream(obj) : NULL; } ppref * pparray_get_ref (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_get_ref(obj) : NULL; } ppref * pparray_rget_ref (pparray *array, size_t index) { ppobj *obj; return (obj = pparray_get(array, index)) != NULL ? ppobj_rget_ref(obj) : NULL; }