diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2025-03-27 17:33:47 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2025-03-27 17:33:47 -0400 |
| commit | b5c6a3ec6220da24bdc1a88a568045c64f16acf1 (patch) | |
| tree | e25272889e3944d5c75ab350326f3992eed1ecc9 /src/stdlib/arrays.c | |
| parent | 3c52a756339a2d96824d21a7d3ad5de7fc1085a0 (diff) | |
Remove mempcpy for portability
Diffstat (limited to 'src/stdlib/arrays.c')
| -rw-r--r-- | src/stdlib/arrays.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/stdlib/arrays.c b/src/stdlib/arrays.c index b7384504..61975aa9 100644 --- a/src/stdlib/arrays.c +++ b/src/stdlib/arrays.c @@ -131,28 +131,37 @@ public void Array$insert_all(Array_t *arr, Array_t to_insert, Int_t int_index, i // Copy first chunk of `arr` if needed: if (index > 1) { if (arr->stride == padded_item_size) { - p = mempcpy(p, arr->data, (size_t)((index-1)*padded_item_size)); + memcpy(p, arr->data, (size_t)((index-1)*padded_item_size)); + p += (index-1)*padded_item_size; } else { - for (int64_t i = 0; i < index-1; i++) - p = mempcpy(p, arr->data + arr->stride*i, (size_t)padded_item_size); + for (int64_t i = 0; i < index-1; i++) { + memcpy(p, arr->data + arr->stride*i, (size_t)padded_item_size); + p += padded_item_size; + } } } // Copy `to_insert` if (to_insert.stride == padded_item_size) { - p = mempcpy(p, to_insert.data, (size_t)(to_insert.length*padded_item_size)); + memcpy(p, to_insert.data, (size_t)(to_insert.length*padded_item_size)); + p += to_insert.length*padded_item_size; } else { - for (int64_t i = 0; i < index-1; i++) - p = mempcpy(p, to_insert.data + to_insert.stride*i, (size_t)padded_item_size); + for (int64_t i = 0; i < index-1; i++) { + memcpy(p, to_insert.data + to_insert.stride*i, (size_t)padded_item_size); + p += padded_item_size; + } } // Copy last chunk of `arr` if needed: if (index < arr->length + 1) { if (arr->stride == padded_item_size) { - p = mempcpy(p, arr->data + padded_item_size*(index-1), (size_t)((arr->length - index + 1)*padded_item_size)); + memcpy(p, arr->data + padded_item_size*(index-1), (size_t)((arr->length - index + 1)*padded_item_size)); + p += (arr->length - index + 1)*padded_item_size; } else { - for (int64_t i = index-1; i < arr->length-1; i++) - p = mempcpy(p, arr->data + arr->stride*i, (size_t)padded_item_size); + for (int64_t i = index-1; i < arr->length-1; i++) { + memcpy(p, arr->data + arr->stride*i, (size_t)padded_item_size); + p += padded_item_size; + } } } arr->length = new_len; |
