diff -r 57fecf138f7b -r 26cabf3261fa hotspot/src/share/vm/memory/heap.cpp --- a/hotspot/src/share/vm/memory/heap.cpp Mon Jan 12 11:14:49 2015 +0100 +++ b/hotspot/src/share/vm/memory/heap.cpp Mon Jan 12 09:55:20 2015 +0100 @@ -279,10 +279,12 @@ return sizeof(HeapBlock) & (_segment_size - 1); } -// Finds the next free heapblock. If the current one is free, that it returned -void* CodeHeap::next_free(HeapBlock* b) const { - // Since free blocks are merged, there is max. on free block - // between two used ones +// Returns the current block if available and used. +// If not, it returns the subsequent block (if available), NULL otherwise. +// Free blocks are merged, therefore there is at most one free block +// between two used ones. As a result, the subsequent block (if available) is +// guaranteed to be used. +void* CodeHeap::next_used(HeapBlock* b) const { if (b != NULL && b->free()) b = next_block(b); assert(b == NULL || !b->free(), "must be in use or at end of heap"); return (b == NULL) ? NULL : b->allocated_space();