From 5a7b4a65a1d93744e4a5e6cc6df4244f61b81f68 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Tue, 14 Jan 2025 18:17:54 -0500 Subject: chore: fix compiler warnings + extra includes --- src/array.hpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/array.hpp') diff --git a/src/array.hpp b/src/array.hpp index a1fa69f..c8a9cb6 100644 --- a/src/array.hpp +++ b/src/array.hpp @@ -45,9 +45,21 @@ inline void PkeArray_Add(PkeArray_Base *arrIn, const D &val, struct pk_membucket diff = arr->reserved - originalCount; } auto *newData = pk_new(arr->reserved, bkt); - memset(newData + (sizeof(D) * originalCount), 0xFF, sizeof(D) * diff); + if constexpr (std::is_trivial::value) { + memset(newData + (sizeof(D) * originalCount), 0x00, sizeof(D) * diff); + } else { + for (int64_t i = originalCount; i < arr->reserved; ++i) { + newData[i] = {}; + } + } if (arr->data != nullptr && arr->data != CAFE_BABE(D)) { - memcpy(newData, arr->data, sizeof(D) * originalCount); + if constexpr (std::is_trivial::value) { + memcpy(newData, arr->data, sizeof(D) * originalCount); + } else { + for (int64_t i = 0; i < diff; ++i) { + newData[i] = arr->data[i]; + } + } pk_delete(arr->data, originalCount, bkt); } arr->data = newData; -- cgit v1.2.3