Mercurial > repos > tabletprog
diff runtime/progfoot.inc @ 38:e7be612fd3ae
Very basic array support
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 10 Jul 2012 23:09:44 -0700 |
parents | bf5e88f6419d |
children | 927fd7911a01 |
line wrap: on
line diff
--- a/runtime/progfoot.inc Tue Jul 10 22:09:21 2012 -0700 +++ b/runtime/progfoot.inc Tue Jul 10 23:09:44 2012 -0700 @@ -1,3 +1,19 @@ + +object * make_array(uint32_t num_els, ...) +{ + va_list els; + int i; + array * arr = malloc(sizeof(array)); + arr->header.meta = &array_meta; + arr->header.parent = NULL; + arr->storage = arr->size = num_els; + arr->data = malloc(sizeof(object *) * num_els); + va_start(els, num_els); + for (i = 0; i < num_els; i++) + arr->data[i] = va_arg(els, object *); + va_end(els); + return &(arr->header); +} int main(int argc, char ** argv) {