hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp

Print this page

        

*** 258,274 **** template <class T> void PSPromotionManager::process_array_chunk_work( oop obj, int start, int end) { assert(start <= end, "invariant"); T* const base = (T*)objArrayOop(obj)->base(); ! T* p = base + start; ! T* const chunk_end = base + end; ! while (p < chunk_end) { if (PSScavenge::should_scavenge(p)) { claim_or_forward_depth(p); } - ++p; } } void PSPromotionManager::process_array_chunk(oop old) { assert(PSChunkLargeArrays, "invariant"); --- 258,274 ---- template <class T> void PSPromotionManager::process_array_chunk_work( oop obj, int start, int end) { assert(start <= end, "invariant"); T* const base = (T*)objArrayOop(obj)->base(); ! T* s = base + start; ! T* p = base + end; ! while (s < p) { ! p--; if (PSScavenge::should_scavenge(p)) { claim_or_forward_depth(p); } } } void PSPromotionManager::process_array_chunk(oop old) { assert(PSChunkLargeArrays, "invariant");