changeset 28495:79a271eaa052

Merge
author roland
date Mon, 12 Jan 2015 15:50:30 +0000
parents d59774687206 26cabf3261fa
children f9753412d4f5
files
diffstat 2 files changed, 9 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/hotspot/src/share/vm/memory/heap.cpp	Wed Jan 07 16:40:02 2015 +0100
+++ b/hotspot/src/share/vm/memory/heap.cpp	Mon Jan 12 15:50:30 2015 +0000
@@ -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();
--- a/hotspot/src/share/vm/memory/heap.hpp	Wed Jan 07 16:40:02 2015 +0100
+++ b/hotspot/src/share/vm/memory/heap.hpp	Mon Jan 12 15:50:30 2015 +0000
@@ -123,7 +123,7 @@
   FreeBlock* search_freelist(size_t length);
 
   // Iteration helpers
-  void*      next_free(HeapBlock* b) const;
+  void*      next_used(HeapBlock* b) const;
   HeapBlock* first_block() const;
   HeapBlock* next_block(HeapBlock* b) const;
   HeapBlock* block_start(void* p) const;
@@ -158,9 +158,9 @@
   int    freelist_length()       const           { return _freelist_length; } // number of elements in the freelist
 
   // returns the first block or NULL
-  void* first() const       { return next_free(first_block()); }
+  void* first() const       { return next_used(first_block()); }
   // returns the next block given a block p or NULL
-  void* next(void* p) const { return next_free(next_block(block_start(p))); }
+  void* next(void* p) const { return next_used(next_block(block_start(p))); }
 
   // Statistics
   size_t capacity() const;