From f415903730145517976c47a9aa65fe4ee5c30b59 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Thu, 8 May 2025 09:57:59 -0400 Subject: pkarr: remove pk_delete from pk_arr_t dtor --- pkarr.h | 5 ----- test/pkarr.cpp | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pkarr.h b/pkarr.h index baa91e8..b8c7829 100644 --- a/pkarr.h +++ b/pkarr.h @@ -35,7 +35,6 @@ struct pk_arr_t : public pk_arr { pk_arr_t(pk_arr_t &&other); pk_arr_t &operator=(const pk_arr_t &other); pk_arr_t &operator=(pk_arr_t &&other); - ~pk_arr_t(); T &operator[](size_t index); }; template @@ -84,10 +83,6 @@ pk_arr_t::operator=(pk_arr_t &&other) { return *this; } template -pk_arr_t::~pk_arr_t() { - if (this->data != NULL) pk_delete(this->data, this->stride * this->reserved, this->bkt); -} -template T &pk_arr_t::operator[](size_t index) { if(index >= this->next) throw "pk_arr_t::operator[] out of range"; return reinterpret_cast(this->data)[index]; diff --git a/test/pkarr.cpp b/test/pkarr.cpp index bc8e3be..9e8acf7 100644 --- a/test/pkarr.cpp +++ b/test/pkarr.cpp @@ -56,6 +56,8 @@ int main(int argc, char *argv[]) if (arr[0] != c) exit(1); fprintf(stdout, "[%s] parameterized bkt ctor + operator[]\n", __FILE__); + + pk_arr_reset(&arr); } if (bkt->allocs != 0) exit(1); fprintf(stdout, "[%s] dtor called.\n", __FILE__); @@ -74,6 +76,9 @@ int main(int argc, char *argv[]) if (arr1[0] != val1) exit(1); if (arr2[0] != val1) exit(1); + + pk_arr_reset(&arr1); + pk_arr_reset(&arr2); } if (bkt->allocs != 0) exit(1); fprintf(stdout, "[%s] dtor called.\n", __FILE__); @@ -92,6 +97,9 @@ int main(int argc, char *argv[]) // if (arr1[0] == val1) exit(1); if (arr2[0] != val1) exit(1); + + pk_arr_reset(&arr1); + pk_arr_reset(&arr2); } if (bkt->allocs != 0) exit(1); fprintf(stdout, "[%s] dtor called.\n", __FILE__); @@ -112,6 +120,9 @@ int main(int argc, char *argv[]) if (arr1[0] != val2) exit(1); if (arr2[0] != val2) exit(1); + + pk_arr_reset(&arr1); + pk_arr_reset(&arr2); } if (bkt->allocs != 0) exit(1); fprintf(stdout, "[%s] dtor called.\n", __FILE__); @@ -132,6 +143,9 @@ int main(int argc, char *argv[]) if (arr1[0] != val2) exit(1); // if (arr2[0] != val1) exit(1); + + pk_arr_reset(&arr1); + pk_arr_reset(&arr2); } if (bkt->allocs != 0) exit(1); fprintf(stdout, "[%s] dtor called.\n", __FILE__); -- cgit v1.2.3