src/share/vm/memory/metachunk.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/memory/metachunk.cpp
src/share/vm/memory/metachunk.cpp
Print this page
*** 28,39 ****
#include "utilities/copy.hpp"
#include "utilities/debug.hpp"
class VirtualSpaceNode;
- const size_t metadata_chunk_initialize = 0xf7f7f7f7;
-
size_t Metachunk::object_alignment() {
// Must align pointers and sizes to 8,
// so that 64 bit types get correctly aligned.
const size_t alignment = 8;
--- 28,37 ----
*** 56,71 ****
_container(container)
{
_top = initial_top();
#ifdef ASSERT
set_is_tagged_free(false);
! size_t data_word_size = pointer_delta(end(),
! _top,
! sizeof(MetaWord));
! Copy::fill_to_words((HeapWord*)_top,
! data_word_size,
! metadata_chunk_initialize);
#endif
}
MetaWord* Metachunk::allocate(size_t word_size) {
MetaWord* result = NULL;
--- 54,64 ----
_container(container)
{
_top = initial_top();
#ifdef ASSERT
set_is_tagged_free(false);
! mangle(uninitMetaWordVal);
#endif
}
MetaWord* Metachunk::allocate(size_t word_size) {
MetaWord* result = NULL;
*** 96,111 ****
used_word_size(), free_word_size());
}
}
#ifndef PRODUCT
! void Metachunk::mangle() {
! // 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);
}
#endif // PRODUCT
void Metachunk::verify() {
#ifdef ASSERT
--- 89,104 ----
used_word_size(), free_word_size());
}
}
#ifndef PRODUCT
! void Metachunk::mangle(juint word_value) {
! // Overwrite the payload of the chunk and not the links that
// maintain list of chunks.
! HeapWord* start = (HeapWord*)initial_top();
size_t size = word_size() - overhead();
! Copy::fill_to_words(start, size, word_value);
}
#endif // PRODUCT
void Metachunk::verify() {
#ifdef ASSERT
src/share/vm/memory/metachunk.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File