6849574: VM crash using NonBlockingHashMap (high_scale_lib)

Reviewed-by: kvn
This commit is contained in:
Tom Rodriguez 2009-06-10 12:19:48 -07:00
parent 7b9d6a79ac
commit 0f4f530213
3 changed files with 47 additions and 10 deletions

View file

@ -371,7 +371,7 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
}
__ move(value.result(), array_addr, null_check_info);
if (obj_store) {
// Is this precise?
// Precise card mark
post_barrier(LIR_OprFact::address(array_addr), value.result());
}
}
@ -685,11 +685,8 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
LIR_Opr result = rlock_result(x);
__ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result);
if (type == objectType) { // Write-barrier needed for Object fields.
#ifdef PRECISE_CARDMARK
// Precise card mark since could either be object or array
post_barrier(addr, val.result());
#else
post_barrier(obj.result(), val.result());
#endif // PRECISE_CARDMARK
}
}