< prev index next >

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

Print this page
rev 56289 : 8231086: Shenandoah: Stronger invariant for object-arraycopy

*** 131,140 **** --- 131,145 ---- inline oop ShenandoahHeap::cas_oop(oop n, oop* addr, oop c) { return (oop) Atomic::cmpxchg(n, addr, c); } + inline oop ShenandoahHeap::cas_oop(oop n, narrowOop* addr, narrowOop c) { + 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) { narrowOop cmp = CompressedOops::encode(c); narrowOop val = CompressedOops::encode(n); return CompressedOops::decode((narrowOop) Atomic::cmpxchg(val, addr, cmp)); }
< prev index next >