# HG changeset patch # User shade # Date 1571690689 -7200 # Node ID ca620b06b5c9f2f8cded86691575a961f65a8ce9 # Parent 15f4471787b92dfa7e313a1591fd39b4a2fe6425 8232729: Shenandoah: assert ShenandoahHeap::cas_oop addresses are aligned Reviewed-by: rkennke diff -r 15f4471787b9 -r ca620b06b5c9 src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Mon Oct 21 22:44:48 2019 +0200 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Mon Oct 21 22:44:49 2019 +0200 @@ -130,15 +130,18 @@ } inline oop ShenandoahHeap::cas_oop(oop n, oop* addr, oop c) { + assert(is_aligned(addr, HeapWordSize), "Address should be aligned: " PTR_FORMAT, p2i(addr)); return (oop) Atomic::cmpxchg(n, addr, c); } inline oop ShenandoahHeap::cas_oop(oop n, narrowOop* addr, narrowOop c) { + assert(is_aligned(addr, sizeof(narrowOop)), "Address should be aligned: " PTR_FORMAT, p2i(addr)); narrowOop val = CompressedOops::encode(n); return CompressedOops::decode((narrowOop) Atomic::cmpxchg(val, addr, c)); } inline oop ShenandoahHeap::cas_oop(oop n, narrowOop* addr, oop c) { + assert(is_aligned(addr, sizeof(narrowOop)), "Address should be aligned: " PTR_FORMAT, p2i(addr)); narrowOop cmp = CompressedOops::encode(c); narrowOop val = CompressedOops::encode(n); return CompressedOops::decode((narrowOop) Atomic::cmpxchg(val, addr, cmp));