diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-08 09:57:59 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-05-08 09:58:21 -0400 |
| commit | f415903730145517976c47a9aa65fe4ee5c30b59 (patch) | |
| tree | ae5a545525a49e4156e69b9f46e4756c98fbda8d | |
| parent | cc95f28f648ee56a189f733f25efcb986d9f205a (diff) | |
pkarr: remove pk_delete from pk_arr_t dtor
| -rw-r--r-- | pkarr.h | 5 | ||||
| -rw-r--r-- | test/pkarr.cpp | 14 |
2 files changed, 14 insertions, 5 deletions
@@ -35,7 +35,6 @@ struct pk_arr_t : public pk_arr { pk_arr_t(pk_arr_t<T> &&other); pk_arr_t &operator=(const pk_arr_t<T> &other); pk_arr_t &operator=(pk_arr_t<T> &&other); - ~pk_arr_t(); T &operator[](size_t index); }; template<typename T> @@ -84,10 +83,6 @@ pk_arr_t<T>::operator=(pk_arr_t<T> &&other) { return *this; } template<typename T> -pk_arr_t<T>::~pk_arr_t() { - if (this->data != NULL) pk_delete(this->data, this->stride * this->reserved, this->bkt); -} -template<typename T> T &pk_arr_t<T>::operator[](size_t index) { if(index >= this->next) throw "pk_arr_t<T>::operator[] out of range"; return reinterpret_cast<T*>(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__); |
