# HG changeset patch # User drwhite # Date 1455833202 18000 # Thu Feb 18 17:06:42 2016 -0500 # Node ID d97ceb258b41914b8ccf7384a977d3dd7e98ab2c # Parent f83b14f087e3cc617ace35a4135f525384f8d605 [mq]: webrev.01 diff --git a/src/share/vm/gc/shared/collectedHeap.cpp b/src/share/vm/gc/shared/collectedHeap.cpp --- a/src/share/vm/gc/shared/collectedHeap.cpp +++ b/src/share/vm/gc/shared/collectedHeap.cpp @@ -405,7 +405,9 @@ oop CollectedHeap::new_store_pre_barrier(JavaThread* thread, oop new_obj) { // If a previous card-mark was deferred, flush it now. flush_deferred_store_barrier(thread); - if (can_elide_initializing_store_barrier(new_obj)) { + if (can_elide_initializing_store_barrier(new_obj) || + new_obj->is_typeArray()) { + // Arrays of non-references don't need a pre-barrier. // The deferred_card_mark region should be empty // following the flush above. assert(thread->deferred_card_mark().is_empty(), "Error");