src/share/vm/code/codeCache.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
7028374 Cdiff src/share/vm/code/codeCache.cpp
src/share/vm/code/codeCache.cpp
Print this page
*** 335,345 ****
}
#endif //PRODUCT
if (is_live) {
// Perform cur->oops_do(f), maybe just once per nmethod.
f->do_code_blob(cur);
- cur->fix_oop_relocations();
}
}
// Check for stray marks.
debug_only(verify_perm_nmethods(NULL));
--- 335,344 ----
*** 549,558 ****
--- 548,570 ----
set_needs_cache_clean(false);
prune_scavenge_root_nmethods();
assert(!nmethod::oops_do_marking_is_active(), "oops_do_marking_prologue must be called");
}
+
+ void CodeCache::verify_oops() {
+ MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
+ VerifyOopClosure voc;
+ FOR_ALL_ALIVE_BLOBS(cb) {
+ if (cb->is_nmethod()) {
+ nmethod *nm = (nmethod*)cb;
+ nm->oops_do(&voc);
+ nm->verify_oop_relocations();
+ }
+ }
+ }
+
address CodeCache::first_address() {
assert_locked_or_safepoint(CodeCache_lock);
return (address)_heap->begin();
}
src/share/vm/code/codeCache.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File