8024751: Fix bugs in TraceMetadata

Reviewed-by: jmasa, brutisso
This commit is contained in:
Stefan Karlsson 2013-09-13 22:23:48 +02:00
parent 860b5dcec7
commit 9784317e8a

View File

@ -2366,10 +2366,10 @@ Metachunk* SpaceManager::get_new_chunk(size_t word_size,
grow_chunks_by_words,
medium_chunk_bunch());
if (TraceMetadataHumongousAllocation &&
if (TraceMetadataHumongousAllocation && next != NULL &&
SpaceManager::is_humongous(next->word_size())) {
gclog_or_tty->print_cr(" new humongous chunk word size " PTR_FORMAT,
next->word_size());
gclog_or_tty->print_cr(" new humongous chunk word size "
PTR_FORMAT, next->word_size());
}
return next;
@ -2487,9 +2487,6 @@ void SpaceManager::dump(outputStream* const out) const {
curr = curr->next()) {
out->print("%d) ", i++);
curr->print_on(out);
if (TraceMetadataChunkAllocation && Verbose) {
block_freelists()->print_on(out);
}
curr_total += curr->word_size();
used += curr->used_word_size();
capacity += curr->capacity_word_size();
@ -2497,6 +2494,10 @@ void SpaceManager::dump(outputStream* const out) const {
}
}
if (TraceMetadataChunkAllocation && Verbose) {
block_freelists()->print_on(out);
}
size_t free = current_chunk() == NULL ? 0 : current_chunk()->free_word_size();
// Free space isn't wasted.
waste -= free;