From 05812ca34ec706f15f830efb208ab473908fbe58 Mon Sep 17 00:00:00 2001 From: Snaipe Date: Wed, 23 Sep 2015 19:21:32 +0200 Subject: [PATCH] Fixed buggy delete_arr --- include/criterion/alloc.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/criterion/alloc.h b/include/criterion/alloc.h index 741b999..4fd6ee0 100644 --- a/include/criterion/alloc.h +++ b/include/criterion/alloc.h @@ -86,11 +86,12 @@ namespace criterion { template void delete_arr(T* ptr) { - size_t len = *(reinterpret_cast(ptr)); - T* arr = reinterpret_cast(reinterpret_cast(ptr) + 1); + size_t *ptr_ = reinterpret_cast(ptr); + size_t len = *(ptr_ - 1); + T* arr = reinterpret_cast(ptr_); for (size_t i = 0; i < len; ++i) arr[i].~T(); - cr_free(ptr); + cr_free(ptr_ - 1); } }