branches/zip: Fix a memory management bug.

page_zip_decompress(): Free index and heap at the end of the function.
Do not write the index to the MLOG_ZIP_DECOMPRESS record, since it can be
decoded from the compressed page.
This commit is contained in:
marko 2006-02-27 16:03:32 +00:00
parent a71a1e9c08
commit e7acbec368

View file

@ -1525,9 +1525,6 @@ zlib_done:
page_zip->m_end = mod_log_ptr - page_zip->data;
}
page_zip_fields_free(index);
mem_heap_free(heap);
if (UNIV_UNLIKELY(!page_zip_set_extra_bytes(
page_zip, page, info_bits))) {
err_exit:
@ -1602,10 +1599,12 @@ err_exit:
ut_ad(page_simple_validate_new(page));
if (UNIV_LIKELY_NULL(mtr)) {
mlog_open_and_write_index(mtr, page, index,
MLOG_ZIP_DECOMPRESS, 0);
mlog_write_initial_log_record(page, MLOG_ZIP_DECOMPRESS, mtr);
}
page_zip_fields_free(index);
mem_heap_free(heap);
return(TRUE);
}