src/share/vm/gc_implementation/g1/heapRegionManager.cpp

changeset 7096
b1266b08b994
parent 7091
a8ea2f110d87
child 7131
d35872270666
equal deleted inserted replaced
7095:09e9e5240710 7096:b1266b08b994
349 uint idx_last_found = 0; 349 uint idx_last_found = 0;
350 uint num_last_found = 0; 350 uint num_last_found = 0;
351 351
352 while ((removed < num_regions_to_remove) && 352 while ((removed < num_regions_to_remove) &&
353 (num_last_found = find_empty_from_idx_reverse(cur, &idx_last_found)) > 0) { 353 (num_last_found = find_empty_from_idx_reverse(cur, &idx_last_found)) > 0) {
354 // Only allow uncommit from the end of the heap.
355 if ((idx_last_found + num_last_found) != _allocated_heapregions_length) {
356 return 0;
357 }
358 uint to_remove = MIN2(num_regions_to_remove - removed, num_last_found); 354 uint to_remove = MIN2(num_regions_to_remove - removed, num_last_found);
359 355
360 uncommit_regions(idx_last_found + num_last_found - to_remove, to_remove); 356 uncommit_regions(idx_last_found + num_last_found - to_remove, to_remove);
361 357
362 cur -= num_last_found; 358 cur -= num_last_found;

mercurial