Skip to content

Commit bb214af

Browse files
committed
Merge branch 'master' into 8374038_ERM_javadoc
Merge
2 parents 5002555 + f88cbfb commit bb214af

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

make/Docs.gmk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ JAVADOC_OPTIONS := -use -keywords -notimestamp \
104104
# development cycle.
105105
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
106106
-serialwarn -encoding utf-8 -breakiterator -splitIndex --system none \
107-
-html5 -javafx --expand-requires transitive
107+
-html5 -javafx --expand-requires transitive \
108+
-XDaccessInternalAPI
108109

109110
# Should we add DRAFT stamps to the generated javadoc?
110111
ifeq ($(VERSION_IS_GA), true)

src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,20 @@ inline void ShenandoahBarrierSet::keep_alive_if_weak(DecoratorSet decorators, oo
191191
template <DecoratorSet decorators, typename T>
192192
inline void ShenandoahBarrierSet::write_ref_field_post(T* field) {
193193
assert(ShenandoahCardBarrier, "Should have been checked by caller");
194+
if (_heap->is_in_young(field)) {
195+
// Young field stores do not require card mark.
196+
return;
197+
}
198+
T heap_oop = RawAccess<>::oop_load(field);
199+
if (CompressedOops::is_null(heap_oop)) {
200+
// Null reference store do not require card mark.
201+
return;
202+
}
203+
oop obj = CompressedOops::decode_not_null(heap_oop);
204+
if (!_heap->is_in_young(obj)) {
205+
// Not an old->young reference store.
206+
return;
207+
}
194208
volatile CardTable::CardValue* byte = card_table()->byte_for(field);
195209
*byte = CardTable::dirty_card_val();
196210
}

0 commit comments

Comments
 (0)