summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-08 09:57:59 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-08 09:58:21 -0400
commitf415903730145517976c47a9aa65fe4ee5c30b59 (patch)
treeae5a545525a49e4156e69b9f46e4756c98fbda8d
parentcc95f28f648ee56a189f733f25efcb986d9f205a (diff)
pkarr: remove pk_delete from pk_arr_t dtor
-rw-r--r--pkarr.h5
-rw-r--r--test/pkarr.cpp14
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<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__);