equal
deleted
inserted
replaced
1681 public: |
1681 public: |
1682 DetectScavengeRoot() : _detected_scavenge_root(false) |
1682 DetectScavengeRoot() : _detected_scavenge_root(false) |
1683 { NOT_PRODUCT(_print_nm = NULL); } |
1683 { NOT_PRODUCT(_print_nm = NULL); } |
1684 bool detected_scavenge_root() { return _detected_scavenge_root; } |
1684 bool detected_scavenge_root() { return _detected_scavenge_root; } |
1685 virtual void do_oop(oop* p) { |
1685 virtual void do_oop(oop* p) { |
1686 if ((*p) != NULL && (*p)->is_scavengable()) { |
1686 if ((*p) != NULL && Universe::heap()->is_scavengable(*p)) { |
1687 NOT_PRODUCT(maybe_print(p)); |
1687 NOT_PRODUCT(maybe_print(p)); |
1688 _detected_scavenge_root = true; |
1688 _detected_scavenge_root = true; |
1689 } |
1689 } |
1690 } |
1690 } |
1691 virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); } |
1691 virtual void do_oop(narrowOop* p) { ShouldNotReachHere(); } |
2176 bool _ok; |
2176 bool _ok; |
2177 public: |
2177 public: |
2178 DebugScavengeRoot(nmethod* nm) : _nm(nm), _ok(true) { } |
2178 DebugScavengeRoot(nmethod* nm) : _nm(nm), _ok(true) { } |
2179 bool ok() { return _ok; } |
2179 bool ok() { return _ok; } |
2180 virtual void do_oop(oop* p) { |
2180 virtual void do_oop(oop* p) { |
2181 if ((*p) == NULL || !(*p)->is_scavengable()) return; |
2181 if ((*p) == NULL || !Universe::heap()->is_scavengable(*p)) return; |
2182 if (_ok) { |
2182 if (_ok) { |
2183 _nm->print_nmethod(true); |
2183 _nm->print_nmethod(true); |
2184 _ok = false; |
2184 _ok = false; |
2185 } |
2185 } |
2186 tty->print_cr("*** scavengable oop " PTR_FORMAT " found at " PTR_FORMAT " (offset %d)", |
2186 tty->print_cr("*** scavengable oop " PTR_FORMAT " found at " PTR_FORMAT " (offset %d)", |