< prev index next >
src/share/vm/code/codeCache.cpp
Print this page
rev 13198 : Consolidated and devirtualize CodeHeap::contains and contains_blob
*** 413,422 ****
--- 413,432 ----
// Register the CodeHeap
MemoryService::add_code_heap_memory_pool(heap, name);
}
+ CodeHeap* CodeCache::get_code_heap(void* start) {
+ assert(start != NULL, "start is null");
+ FOR_ALL_HEAPS(heap) {
+ if ((*heap)->contains(start)) {
+ return *heap;
+ }
+ }
+ return NULL;
+ }
+
CodeHeap* CodeCache::get_code_heap(const CodeBlob* cb) {
assert(cb != NULL, "CodeBlob is null");
FOR_ALL_HEAPS(heap) {
if ((*heap)->contains_blob(cb)) {
return *heap;
*** 600,615 ****
// Lookup that does not fail if you lookup a zombie method (if you call this, be sure to know
// what you are doing)
CodeBlob* CodeCache::find_blob_unsafe(void* start) {
// NMT can walk the stack before code cache is created
! if (_heaps != NULL && !_heaps->is_empty()) {
! FOR_ALL_HEAPS(heap) {
! CodeBlob* result = (*heap)->find_blob_unsafe(start);
! if (result != NULL) {
! return result;
! }
}
}
return NULL;
}
--- 610,623 ----
// Lookup that does not fail if you lookup a zombie method (if you call this, be sure to know
// what you are doing)
CodeBlob* CodeCache::find_blob_unsafe(void* start) {
// NMT can walk the stack before code cache is created
! if (_heaps != NULL) {
! CodeHeap* heap = get_code_heap(start);
! if (heap != NULL) {
! return heap->find_blob_unsafe(start);
}
}
return NULL;
}
< prev index next >