@@ -862,11 +862,11 @@ } } if (p != NULL) { HeapWord* cur_top, *cur_chunk_top = p + size; while ((cur_top = top()) < cur_chunk_top) { // Keep _top updated. - if (Atomic::cmpxchg(cur_chunk_top, top_addr(), cur_top) == cur_top) { + if (Atomic::cmpxchg(top_addr(), cur_top, cur_chunk_top) == cur_top) { break; } } }