comparison runtime/array.c @ 78:4d5ea487f810

Working String implementation and some basic (but nowhere near exhaustive) tests
author Mike Pavone <pavone@retrodev.com>
date Thu, 08 Jul 2010 21:55:47 -0400
parents 70af7fa155d0
children 5a08705f7610
comparison
equal deleted inserted replaced
77:a748300a4143 78:4d5ea487f810
3 3
4 void _internal_array_copyout(object * array, int32_t index, object * dest) 4 void _internal_array_copyout(object * array, int32_t index, object * dest)
5 { 5 {
6 t_Array * arr = (t_Array *)array; 6 t_Array * arr = (t_Array *)array;
7 memcpy(((char *)dest) + sizeof(object), ((char *)array) + sizeof(t_Array) + arr->payload.Eltype->bp->size * index, get_blueprint(dest)->size); 7 memcpy(((char *)dest) + sizeof(object), ((char *)array) + sizeof(t_Array) + arr->payload.Eltype->bp->size * index, get_blueprint(dest)->size);
8 get_blueprint(dest)->copy(dest);
8 } 9 }
9 10
10 void _internal_array_copyin(object * array, int32_t index, object * val) 11 void _internal_array_copyin(object * array, int32_t index, object * val)
11 { 12 {
12 t_Array * arr = (t_Array *)array; 13 t_Array * arr = (t_Array *)array;
13 memcpy(((char *)array) + sizeof(t_Array) + arr->payload.Eltype->bp->size * index, ((char *)val) + sizeof(object), arr->payload.Eltype->bp->size); 14 memcpy(((char *)array) + sizeof(t_Array) + arr->payload.Eltype->bp->size * index, ((char *)val) + sizeof(object), arr->payload.Eltype->bp->size);
15 get_blueprint(val)->copy(val);
14 } 16 }
15 17
16 object * _internal_array_getboxed(object * array, int32_t index) 18 object * _internal_array_getboxed(object * array, int32_t index)
17 { 19 {
18 object * ret; 20 object * ret;