8046231: G1: Code root location ... from nmethod ... not in strong code roots for region
Reviewed-by: tschatzl, ehelin
--- a/hotspot/src/share/vm/code/nmethod.cpp Wed Jun 04 11:56:44 2014 +0200
+++ b/hotspot/src/share/vm/code/nmethod.cpp Mon Jun 23 16:43:41 2014 +0200
@@ -669,8 +669,10 @@
_hotness_counter = NMethodSweeper::hotness_counter_reset_val();
code_buffer->copy_values_to(this);
- if (ScavengeRootsInCode && detect_scavenge_root_oops()) {
- CodeCache::add_scavenge_root_nmethod(this);
+ if (ScavengeRootsInCode) {
+ if (detect_scavenge_root_oops()) {
+ CodeCache::add_scavenge_root_nmethod(this);
+ }
Universe::heap()->register_nmethod(this);
}
debug_only(verify_scavenge_root_oops());
@@ -754,8 +756,10 @@
_hotness_counter = NMethodSweeper::hotness_counter_reset_val();
code_buffer->copy_values_to(this);
- if (ScavengeRootsInCode && detect_scavenge_root_oops()) {
- CodeCache::add_scavenge_root_nmethod(this);
+ if (ScavengeRootsInCode) {
+ if (detect_scavenge_root_oops()) {
+ CodeCache::add_scavenge_root_nmethod(this);
+ }
Universe::heap()->register_nmethod(this);
}
DEBUG_ONLY(verify_scavenge_root_oops();)
@@ -870,8 +874,10 @@
code_buffer->copy_values_to(this);
debug_info->copy_to(this);
dependencies->copy_to(this);
- if (ScavengeRootsInCode && detect_scavenge_root_oops()) {
- CodeCache::add_scavenge_root_nmethod(this);
+ if (ScavengeRootsInCode) {
+ if (detect_scavenge_root_oops()) {
+ CodeCache::add_scavenge_root_nmethod(this);
+ }
Universe::heap()->register_nmethod(this);
}
debug_only(verify_scavenge_root_oops());
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Wed Jun 04 11:56:44 2014 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Mon Jun 23 16:43:41 2014 +0200
@@ -6995,7 +6995,7 @@
return;
}
- if (ScavengeRootsInCode && nm->detect_scavenge_root_oops()) {
+ if (ScavengeRootsInCode) {
_g1h->register_nmethod(nm);
}
}