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");