1.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Wed Mar 26 10:54:52 2014 +0100 1.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp Thu Mar 06 09:08:18 2014 +0100 1.3 @@ -795,53 +795,6 @@ 1.4 } 1.5 } 1.6 1.7 -// Apply the given closure to each oop in the space \intersect memory region. 1.8 -void CompactibleFreeListSpace::oop_iterate(MemRegion mr, ExtendedOopClosure* cl) { 1.9 - assert_lock_strong(freelistLock()); 1.10 - if (is_empty()) { 1.11 - return; 1.12 - } 1.13 - MemRegion cur = MemRegion(bottom(), end()); 1.14 - mr = mr.intersection(cur); 1.15 - if (mr.is_empty()) { 1.16 - return; 1.17 - } 1.18 - if (mr.equals(cur)) { 1.19 - oop_iterate(cl); 1.20 - return; 1.21 - } 1.22 - assert(mr.end() <= end(), "just took an intersection above"); 1.23 - HeapWord* obj_addr = block_start(mr.start()); 1.24 - HeapWord* t = mr.end(); 1.25 - 1.26 - SpaceMemRegionOopsIterClosure smr_blk(cl, mr); 1.27 - if (block_is_obj(obj_addr)) { 1.28 - // Handle first object specially. 1.29 - oop obj = oop(obj_addr); 1.30 - obj_addr += adjustObjectSize(obj->oop_iterate(&smr_blk)); 1.31 - } else { 1.32 - FreeChunk* fc = (FreeChunk*)obj_addr; 1.33 - obj_addr += fc->size(); 1.34 - } 1.35 - while (obj_addr < t) { 1.36 - HeapWord* obj = obj_addr; 1.37 - obj_addr += block_size(obj_addr); 1.38 - // If "obj_addr" is not greater than top, then the 1.39 - // entire object "obj" is within the region. 1.40 - if (obj_addr <= t) { 1.41 - if (block_is_obj(obj)) { 1.42 - oop(obj)->oop_iterate(cl); 1.43 - } 1.44 - } else { 1.45 - // "obj" extends beyond end of region 1.46 - if (block_is_obj(obj)) { 1.47 - oop(obj)->oop_iterate(&smr_blk); 1.48 - } 1.49 - break; 1.50 - } 1.51 - } 1.52 -} 1.53 - 1.54 // NOTE: In the following methods, in order to safely be able to 1.55 // apply the closure to an object, we need to be sure that the 1.56 // object has been initialized. We are guaranteed that an object