summaryrefslogtreecommitdiffstats
path: root/vespamalloc
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-02-27 00:12:13 +0100
committerTor Egge <Tor.Egge@online.no>2022-02-27 00:12:13 +0100
commitc72ede0ea57ffc81390b496d8461b66dde2c8eb0 (patch)
tree07cf776c30fea697657abb0f75298177fd0eb34d /vespamalloc
parentc1752debf75d310617d360a34e15a3ed21e7772a (diff)
Use pointers to functions to hide delete from compiler.
Diffstat (limited to 'vespamalloc')
-rw-r--r--vespamalloc/src/tests/doubledelete/doubledelete.cpp11
-rw-r--r--vespamalloc/src/tests/overwrite/overwrite.cpp11
2 files changed, 18 insertions, 4 deletions
diff --git a/vespamalloc/src/tests/doubledelete/doubledelete.cpp b/vespamalloc/src/tests/doubledelete/doubledelete.cpp
index bd04be2da5d..fd3eadddd69 100644
--- a/vespamalloc/src/tests/doubledelete/doubledelete.cpp
+++ b/vespamalloc/src/tests/doubledelete/doubledelete.cpp
@@ -3,12 +3,19 @@
void *savedptr;
+void delete_ptr_real(char *ptr)
+{
+ delete ptr;
+}
+
+void (*delete_ptr)(char *ptr) = delete_ptr_real;
+
int main(int argc, char *argv[])
{
(void) argc;
(void) argv;
char * a = new char;
savedptr = a;
- delete a;
- delete a;
+ delete_ptr(a);
+ delete_ptr(a);
}
diff --git a/vespamalloc/src/tests/overwrite/overwrite.cpp b/vespamalloc/src/tests/overwrite/overwrite.cpp
index 151207e95fa..aae5cccb696 100644
--- a/vespamalloc/src/tests/overwrite/overwrite.cpp
+++ b/vespamalloc/src/tests/overwrite/overwrite.cpp
@@ -17,6 +17,13 @@ void overwrite_memory_real(char *ptr, int offset)
void (*overwrite_memory)(char *ptr, int offset) = overwrite_memory_real;
+void delete_vec_real(char *ptr)
+{
+ delete [] ptr;
+}
+
+void (*delete_vec)(char *ptr) = delete_vec_real;
+
class Test : public TestApp
{
public:
@@ -43,7 +50,7 @@ void Test::testFillValue(char *a)
char *d = new char[256];
memset(d, 0x77, 256);
check_ptr(d);
- delete [] d;
+ delete_vec(d);
EXPECT_EQUAL((int)d[0], 0x66);
EXPECT_EQUAL((int)d[1], 0x66);
EXPECT_EQUAL((int)d[255], 0x66);
@@ -84,7 +91,7 @@ void Test::verifyWriteAfterFreeDetection()
// Make sure that enough blocks of memory is allocated and freed.
char * a = new char[256];
check_ptr(a);
- delete [] a;
+ delete_vec(a);
for (size_t i(0); i < 100; i++) {
char *d = new char[256];
check_ptr(d);