#include "dynamic-array.hpp" void DynArrayReserve(DynArrayBase *arr, int64_t count) { assert(count != 0); if (arr->reservedCount >= count) return; char *a = nullptr; a = pk_new_arr(arr->elementSize * count, arr->bkt); if (arr->ptr != nullptr) { std::memcpy(a, arr->ptr, arr->elementSize * arr->reservedCount); pk_delete_arr(arr->ptr, arr->elementSize * arr->reservedCount, arr->bkt); } arr->reservedCount = count; arr->ptr = a; } void DynArrayDestroy(DynArrayBase *arr) { if (arr->ptr == nullptr) return; if (arr->ptr == CAFE_BABE(char)) return; if (arr->reservedCount > 0) pk_delete_arr(arr->ptr, arr->elementSize * arr->reservedCount, arr->bkt); arr->ptr = CAFE_BABE(char); }