From d3aafcbee0c8c3e6b78a1b25f930264bd42fe29d Mon Sep 17 00:00:00 2001 From: Seoxi Ryouko Date: Thu, 20 Aug 2026 04:08:07 -0500 Subject: [PATCH] fixed merge --- libkeke_array.c | 12 ++++++++++-- test_array.c | 8 ++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libkeke_array.c b/libkeke_array.c index 112deef..a4b18b2 100644 --- a/libkeke_array.c +++ b/libkeke_array.c @@ -200,8 +200,16 @@ void keke_array_qsort_header(KekeArray *array, size_t start_header_size) { // requires pre-sorted arrays KekeArray *keke_array_merge(KekeArray *a, KekeArray *b) { - if(a->len == 0) return keke_array_clone(b); - if(b->len == 0) return keke_array_clone(a); + if(a->len == 0) { + KekeArray *r = keke_array_clone(b); + keke_array_set_len(b, 0); + return r; + } + if(b->len == 0) { + KekeArray *r = keke_array_clone(a); + keke_array_set_len(a, 0); + return r; + } keke_array_reverse(a); keke_array_reverse(b); if(a->type_size != b->type_size) return NULL; diff --git a/test_array.c b/test_array.c index 9ffa382..0f7cb33 100644 --- a/test_array.c +++ b/test_array.c @@ -143,14 +143,14 @@ int main(void) { keke_array_foreach(array, set); keke_array_qsort_header(array, sizeof(int)); - /*keke_array_foreach(array, output); - puts("\n"); - keke_array_foreach(array2, output); - puts("\n");*/ KekeArray *array5 = keke_array_merge(array, array2); printf("Expected value:\n0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 5, 6, 7, 8, 9,\n"); keke_array_foreach(array5, output); puts("\n"); + keke_array_foreach(array, output); + puts("\n"); + keke_array_foreach(array2, output); + puts("\n"); keke_array_free(array); keke_array_free(array2);