diff options
Diffstat (limited to 'array.c')
-rw-r--r-- | array.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -50,8 +50,7 @@ mkrunearray(Rune *str) Array * duparray(Array *a) { - Array *b = allocarray(a->type, a->rank, a->size); - memcpy(b->shape, a->shape, sizeof(int) * a->rank); + Array *b = duparrayshape(a, a->type); memcpy(b->rawdata, a->rawdata, datasizes[a->type]*a->size); if(b->type == AtypeArray) for(int i = 0; i < b->size; i++) @@ -59,6 +58,14 @@ duparray(Array *a) return b; } +Array * +duparrayshape(Array *a, int type) +{ + Array *b = allocarray(type, a->rank, a->size); + memcpy(b->shape, a->shape, sizeof(int) * a->rank); + return b; +} + int simplearray(Array *a) { |