RFR: Excessive assert in ShHeap::mark_next
Aleksey Shipilev
shade at redhat.com
Mon Mar 5 12:43:31 UTC 2018
This slipped through assert refactoring. The second assert is excessive, because it checks exactly
what the first assert is verifying ("obj == rb(obj)"). Also, mark_next_no_checks is not need,
because it not used anywhere except for mark_next.
diff -r 46caecb58216 src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Mon Mar 05 11:06:26 2018 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Mon Mar 05 13:34:37 2018 +0100
@@ -66,11 +66,6 @@
*/
inline bool ShenandoahHeap::mark_next(oop obj) const {
shenandoah_assert_not_forwarded(NULL, obj);
- assert(oopDesc::unsafe_equals(obj, BarrierSet::barrier_set()->read_barrier(obj)), "only mark
forwarded copy of objects");
- return mark_next_no_checks(obj);
-}
-
-inline bool ShenandoahHeap::mark_next_no_checks(oop obj) const {
HeapWord* addr = (HeapWord*) obj;
return (! allocated_after_next_mark_start(addr)) && _next_mark_bit_map->parMark(addr);
}
Testing: hotspot_fast_gc_shenandoah
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list