From fd9052f3c54aeee72f42ca7142a6ddadd11a4826 Mon Sep 17 00:00:00 2001 From: Aleksey Shipilev Date: Mon, 21 Oct 2019 22:44:49 +0200 Subject: [PATCH] 8232729: Shenandoah: assert ShenandoahHeap::cas_oop addresses are aligned Reviewed-by: rkennke --- src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp b/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp index 32fb3da3b0e..7f93ed20798 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp @@ -130,15 +130,18 @@ inline oop ShenandoahHeap::evac_update_with_forwarded(T* p) { } 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));