7025742: Can not use CodeCache::unallocated_capacity() with fragmented CodeCache

Use largest_free_block() instead of unallocated_capacity().

Reviewed-by: iveresov, never, ysr
This commit is contained in:
Vladimir Kozlov 2011-03-09 09:15:16 -08:00
parent 84ef74286f
commit fd6487f201
7 changed files with 28 additions and 15 deletions

View file

@ -147,6 +147,7 @@ class CodeCache : AllStatic {
static void verify(); // verifies the code cache
static void print_trace(const char* event, CodeBlob* cb, int size = 0) PRODUCT_RETURN;
static void print_bounds(outputStream* st); // Prints a summary of the bounds of the code cache
static void log_state(outputStream* st);
// The full limits of the codeCache
static address low_bound() { return (address) _heap->low_boundary(); }
@ -159,7 +160,7 @@ class CodeCache : AllStatic {
static size_t max_capacity() { return _heap->max_capacity(); }
static size_t unallocated_capacity() { return _heap->unallocated_capacity(); }
static size_t largest_free_block() { return _heap->largest_free_block(); }
static bool needs_flushing() { return unallocated_capacity() < CodeCacheFlushingMinimumFreeSpace; }
static bool needs_flushing() { return largest_free_block() < CodeCacheFlushingMinimumFreeSpace; }
static bool needs_cache_clean() { return _needs_cache_clean; }
static void set_needs_cache_clean(bool v) { _needs_cache_clean = v; }