Mercurial > repos > rhope
view runtime/array.c @ 44:a7c79ac22efc
Beginning of basic type inference
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 31 Oct 2009 21:28:28 -0400 |
parents | d61550e2c001 |
children | 3e20ed8959c4 |
line wrap: on
line source
#include "array.h" #include "integer.h" Func(Array,0, ;) Ret(0, new_object(TYPE_ARRAY)) Return EndFunc Method(Index,Array,2, _t_Int32 * idx;) Param(1,idx,Int32) if (idx->num < 0 || idx->num >= me->numels) { Ret(0, NULL) Ret(1, me) } else { Ret(1, NULL) if (me->contents_type) { Ret(0, copy_from_raw(me->conents_type, (char *)me + sizeof(*me) + (idx->num * sizeof(object *)))) } else { Ret(0, add_ref((object *)((char *)me + sizeof(*me) + (idx->num * sizeof(object *))))) } release_ref(me); } EndFunc