From 87bc0cfdbddeb550b7d7959c88088ef9658a5e2d Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 23 Feb 2024 13:29:20 -0500 Subject: Fix up some ++ stuff for arrays --- builtins/array.c | 24 ++++++++++++------------ builtins/array.h | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) (limited to 'builtins') 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, }; } diff --git a/builtins/array.h b/builtins/array.h index 5a4b29ab..0cbc12f8 100644 --- a/builtins/array.h +++ b/builtins/array.h @@ -32,7 +32,7 @@ void Array__clear(array_t *array, const TypeInfo *type); void Array__compact(array_t *arr, const TypeInfo *type); bool Array__contains(array_t array, void *item, const TypeInfo *type); array_t Array__slice(array_t *array, int64_t first, int64_t stride, int64_t length, bool readonly, const TypeInfo *type); -array_t Array__concat(array_t *x, array_t *y, const TypeInfo *type); +array_t Array__concat(array_t x, array_t y, const TypeInfo *type); uint32_t Array__hash(const array_t *arr, const TypeInfo *type); int32_t Array__compare(const array_t *x, const array_t *y, const TypeInfo *type); bool Array__equal(const array_t *x, const array_t *y, const TypeInfo *type); -- cgit v1.2.3