288 // Check if heap is needed
289 if (!heap_available(code_blob_type)) {
290 return;
291 }
292
293 // Create CodeHeap
294 CodeHeap* heap = new CodeHeap(name, code_blob_type);
295 _heaps->append(heap);
296
297 // Reserve Space
298 size_initial = round_to(size_initial, os::vm_page_size());
299
300 if (!heap->reserve(rs, size_initial, CodeCacheSegmentSize)) {
301 vm_exit_during_initialization("Could not reserve enough space for code cache");
302 }
303
304 // Register the CodeHeap
305 MemoryService::add_code_heap_memory_pool(heap, name);
306 }
307
308 CodeHeap* CodeCache::get_code_heap(CodeBlob* cb) {
309 assert(cb != NULL, "CodeBlob is null");
310 FOR_ALL_HEAPS(heap) {
311 if ((*heap)->contains(cb)) {
312 return *heap;
313 }
314 }
315 ShouldNotReachHere();
316 return NULL;
317 }
318
319 CodeHeap* CodeCache::get_code_heap(int code_blob_type) {
320 FOR_ALL_HEAPS(heap) {
321 if ((*heap)->accepts(code_blob_type)) {
322 return *heap;
323 }
324 }
325 return NULL;
326 }
327
328 CodeBlob* CodeCache::first_blob(CodeHeap* heap) {
|
288 // Check if heap is needed
289 if (!heap_available(code_blob_type)) {
290 return;
291 }
292
293 // Create CodeHeap
294 CodeHeap* heap = new CodeHeap(name, code_blob_type);
295 _heaps->append(heap);
296
297 // Reserve Space
298 size_initial = round_to(size_initial, os::vm_page_size());
299
300 if (!heap->reserve(rs, size_initial, CodeCacheSegmentSize)) {
301 vm_exit_during_initialization("Could not reserve enough space for code cache");
302 }
303
304 // Register the CodeHeap
305 MemoryService::add_code_heap_memory_pool(heap, name);
306 }
307
308 CodeHeap* CodeCache::get_code_heap(const CodeBlob* cb) {
309 assert(cb != NULL, "CodeBlob is null");
310 FOR_ALL_HEAPS(heap) {
311 if ((*heap)->contains(cb)) {
312 return *heap;
313 }
314 }
315 ShouldNotReachHere();
316 return NULL;
317 }
318
319 CodeHeap* CodeCache::get_code_heap(int code_blob_type) {
320 FOR_ALL_HEAPS(heap) {
321 if ((*heap)->accepts(code_blob_type)) {
322 return *heap;
323 }
324 }
325 return NULL;
326 }
327
328 CodeBlob* CodeCache::first_blob(CodeHeap* heap) {
|