aboutsummaryrefslogtreecommitdiff
path: root/builtins/array.c
diff options
context:
space:
mode:
Diffstat (limited to 'builtins/array.c')
-rw-r--r--builtins/array.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/builtins/array.c b/builtins/array.c
index 4f9070fe..85eaeb83 100644
--- a/builtins/array.c
+++ b/builtins/array.c
@@ -228,30 +228,30 @@ public array_t Array__slice(array_t *array, int64_t first, int64_t stride, int64
};
}
-array_t Array__concat(array_t *x, array_t *y, const TypeInfo *type)
+public array_t Array__concat(array_t x, array_t y, const TypeInfo *type)
{
int64_t item_size = get_item_size(type);
- void *data = x->atomic ? GC_MALLOC_ATOMIC(item_size*(x->length + y->length)) : GC_MALLOC(item_size*(x->length + y->length));
- if (x->stride == item_size) {
- memcpy(data, x->data, item_size*x->length);
+ void *data = x.atomic ? GC_MALLOC_ATOMIC(item_size*(x.length + y.length)) : GC_MALLOC(item_size*(x.length + y.length));
+ if (x.stride == item_size) {
+ memcpy(data, x.data, item_size*x.length);
} else {
- for (int64_t i = 0; i < x->length; i++)
- memcpy(data + i*item_size, x->data + i*item_size, item_size);
+ for (int64_t i = 0; i < x.length; i++)
+ memcpy(data + i*item_size, x.data + i*item_size, item_size);
}
- if (y->stride == item_size) {
- memcpy(data + item_size*x->length, y->data, item_size*y->length);
+ if (y.stride == item_size) {
+ memcpy(data + item_size*x.length, y.data, item_size*y.length);
} else {
- for (int64_t i = 0; i < x->length; i++)
- memcpy(data + (x->length + i)*item_size, y->data + i*item_size, item_size);
+ for (int64_t i = 0; i < x.length; i++)
+ memcpy(data + (x.length + i)*item_size, y.data + i*item_size, item_size);
}
return (array_t){
.data=data,
- .length=x->length + y->length,
+ .length=x.length + y.length,
.stride=item_size,
.copy_on_write=0,
- .atomic=x->atomic,
+ .atomic=x.atomic,
};
}