diff --git a/include/mem0mem.ic b/include/mem0mem.ic index 6cfe1a6d532ef7108956ba10c2df3637a5f34381..76ef28031404f3377488656bf27807cff28c0217 100644 --- a/include/mem0mem.ic +++ b/include/mem0mem.ic @@ -390,7 +390,11 @@ mem_heap_free_top( == mem_block_get_start(block))) { mem_heap_block_free(heap, block); } else { - UNIV_MEM_FREE((byte*) block + mem_block_get_free(block), n); + /* Avoid a bogus UNIV_MEM_ASSERT_W() warning in a + subsequent invocation of mem_heap_free_top(). + Originally, this was UNIV_MEM_FREE(), to catch writes + to freed memory. */ + UNIV_MEM_ALLOC((byte*) block + mem_block_get_free(block), n); } } diff --git a/ut/ut0ut.c b/ut/ut0ut.c index 53048c87af345a6debb84014e58fd5cd65f10dc1..1a6f6bbb810bc783efccf4e86e268e0f8c08e475 100644 --- a/ut/ut0ut.c +++ b/ut/ut0ut.c @@ -360,6 +360,8 @@ ut_print_buf( const byte* data; ulint i; + UNIV_MEM_ASSERT_RW(buf, len); + fprintf(file, " len %lu; hex ", len); for (data = (const byte*)buf, i = 0; i < len; i++) {