diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-02-27 00:12:13 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-02-27 00:12:13 +0100 |
commit | c72ede0ea57ffc81390b496d8461b66dde2c8eb0 (patch) | |
tree | 07cf776c30fea697657abb0f75298177fd0eb34d /vespamalloc | |
parent | c1752debf75d310617d360a34e15a3ed21e7772a (diff) |
Use pointers to functions to hide delete from compiler.
Diffstat (limited to 'vespamalloc')
-rw-r--r-- | vespamalloc/src/tests/doubledelete/doubledelete.cpp | 11 | ||||
-rw-r--r-- | vespamalloc/src/tests/overwrite/overwrite.cpp | 11 |
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); |