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); } }