8269066: assert(ZAddress::is_marked(addr)) failed: Should be marked

Reviewed-by: eosterlund, stefank, kbarrett, tschatzl
This commit is contained in:
Per Liden 2021-06-23 10:14:38 +00:00
parent 1323be54d2
commit 8128ca1381

View File

@ -194,11 +194,21 @@ int ZBarrierSetC2::estimate_stub_size() const {
static void set_barrier_data(C2Access& access) {
if (ZBarrierSet::barrier_needed(access.decorators(), access.type())) {
if (access.decorators() & ON_WEAK_OOP_REF) {
access.set_barrier_data(ZLoadBarrierWeak);
uint8_t barrier_data = 0;
if (access.decorators() & ON_PHANTOM_OOP_REF) {
barrier_data |= ZLoadBarrierPhantom;
} else if (access.decorators() & ON_WEAK_OOP_REF) {
barrier_data |= ZLoadBarrierWeak;
} else {
access.set_barrier_data(ZLoadBarrierStrong);
barrier_data |= ZLoadBarrierStrong;
}
if (access.decorators() & AS_NO_KEEPALIVE) {
barrier_data |= ZLoadBarrierNoKeepalive;
}
access.set_barrier_data(barrier_data);
}
}