--- old/src/share/vm/memory/metachunk.cpp 2016-03-10 21:50:10.000000000 +0300 +++ new/src/share/vm/memory/metachunk.cpp 2016-03-10 21:50:10.000000000 +0300 @@ -98,12 +98,20 @@ } #ifndef PRODUCT -void Metachunk::mangle() { +static void overwrite_chunk_payload(Metachunk* chunk, juint wordValue) { // Mangle the payload of the chunk and not the links that // maintain list of chunks. - HeapWord* start = (HeapWord*)(bottom() + overhead()); - size_t size = word_size() - overhead(); - Copy::fill_to_words(start, size, metadata_chunk_initialize); + HeapWord* start = (HeapWord*)(chunk->bottom() + chunk->overhead()); + size_t size = chunk->word_size() - chunk->overhead(); + Copy::fill_to_words(start, size, wordValue); +} + +void Metachunk::mangle() { + overwrite_chunk_payload(this, metadata_chunk_initialize); +} + +void Metachunk::zap() { + overwrite_chunk_payload(this, badMetaWordVal); } #endif // PRODUCT