diff --git a/include/page0zip.ic b/include/page0zip.ic index 77d3d317959bb1cacb17aff71d1df9321b3b7ea9..23b2603869d99f06e3bc09ed4cecbf5000ce0820 100644 --- a/include/page0zip.ic +++ b/include/page0zip.ic @@ -215,7 +215,7 @@ page_zip_get_trailer_len( ulint uncompressed_size; ut_ad(page_zip_simple_validate(page_zip)); - UNIV_MEM_ASSERT_RW(page_zip, page_zip_get_size(page_zip)); + UNIV_MEM_ASSERT_RW(page_zip->data, page_zip_get_size(page_zip)); if (UNIV_UNLIKELY(!page_is_leaf(page_zip->data))) { uncompressed_size = PAGE_ZIP_DIR_SLOT_SIZE @@ -356,7 +356,7 @@ page_zip_write_header( ut_ad(buf_frame_get_page_zip(str) == page_zip); ut_ad(page_zip_simple_validate(page_zip)); - UNIV_MEM_ASSERT_RW(page_zip, page_zip_get_size(page_zip)); + UNIV_MEM_ASSERT_RW(page_zip->data, page_zip_get_size(page_zip)); pos = page_offset(str); diff --git a/page/page0zip.c b/page/page0zip.c index 63f80ffded6cbc5bbc5f4036c26c7785dfd3f5d0..11c4345a8219748ce5d01a173923558468e0f59d 100644 --- a/page/page0zip.c +++ b/page/page0zip.c @@ -2678,12 +2678,16 @@ page_zip_validate( temp_page = ut_align(temp_page_buf, UNIV_PAGE_SIZE); #ifdef UNIV_DEBUG_VALGRIND - /* Get some more information if the UNIV_MEM_ASSERT_RW below fail. */ + /* Get detailed information on the valid bits in case the + UNIV_MEM_ASSERT_RW() checks fail. */ VALGRIND_GET_VBITS(page, temp_page, UNIV_PAGE_SIZE); - VALGRIND_GET_VBITS(page_zip, &temp_page_zip, sizeof temp_page_zip); -#endif /* UNIV_DEBUG_VALGRIND */ UNIV_MEM_ASSERT_RW(page, UNIV_PAGE_SIZE); + VALGRIND_GET_VBITS(page_zip, &temp_page_zip, sizeof temp_page_zip); + UNIV_MEM_ASSERT_RW(page_zip, sizeof *page_zip); + VALGRIND_GET_VBITS(page_zip->data, temp_page, + page_zip_get_size(page_zip)); UNIV_MEM_ASSERT_RW(page_zip->data, page_zip_get_size(page_zip)); +#endif /* UNIV_DEBUG_VALGRIND */ temp_page_zip = *page_zip; valid = page_zip_decompress(&temp_page_zip, temp_page);