Mercurial > repos > rhope
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; |