38 #include "oops/oop.inline2.hpp" |
38 #include "oops/oop.inline2.hpp" |
39 #include "runtime/java.hpp" |
39 #include "runtime/java.hpp" |
40 #include "runtime/safepoint.hpp" |
40 #include "runtime/safepoint.hpp" |
41 #include "utilities/copy.hpp" |
41 #include "utilities/copy.hpp" |
42 #include "utilities/globalDefinitions.hpp" |
42 #include "utilities/globalDefinitions.hpp" |
|
43 #include "utilities/macros.hpp" |
43 |
44 |
44 void SpaceMemRegionOopsIterClosure::do_oop(oop* p) { SpaceMemRegionOopsIterClosure::do_oop_work(p); } |
45 void SpaceMemRegionOopsIterClosure::do_oop(oop* p) { SpaceMemRegionOopsIterClosure::do_oop_work(p); } |
45 void SpaceMemRegionOopsIterClosure::do_oop(narrowOop* p) { SpaceMemRegionOopsIterClosure::do_oop_work(p); } |
46 void SpaceMemRegionOopsIterClosure::do_oop(narrowOop* p) { SpaceMemRegionOopsIterClosure::do_oop_work(p); } |
46 |
47 |
47 HeapWord* DirtyCardToOopClosure::get_actual_top(HeapWord* top, |
48 HeapWord* DirtyCardToOopClosure::get_actual_top(HeapWord* top, |
656 assert(obj_start_addr > prev, "Invariant"); |
657 assert(obj_start_addr > prev, "Invariant"); |
657 cl->set_previous(obj_start_addr); // min address for next time |
658 cl->set_previous(obj_start_addr); // min address for next time |
658 } |
659 } |
659 } |
660 } |
660 |
661 |
661 #ifndef SERIALGC |
662 #if INCLUDE_ALL_GCS |
662 #define ContigSpace_PAR_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ |
663 #define ContigSpace_PAR_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ |
663 \ |
664 \ |
664 void ContiguousSpace::par_oop_iterate(MemRegion mr, OopClosureType* blk) {\ |
665 void ContiguousSpace::par_oop_iterate(MemRegion mr, OopClosureType* blk) {\ |
665 HeapWord* obj_addr = mr.start(); \ |
666 HeapWord* obj_addr = mr.start(); \ |
666 HeapWord* t = mr.end(); \ |
667 HeapWord* t = mr.end(); \ |
671 } |
672 } |
672 |
673 |
673 ALL_PAR_OOP_ITERATE_CLOSURES(ContigSpace_PAR_OOP_ITERATE_DEFN) |
674 ALL_PAR_OOP_ITERATE_CLOSURES(ContigSpace_PAR_OOP_ITERATE_DEFN) |
674 |
675 |
675 #undef ContigSpace_PAR_OOP_ITERATE_DEFN |
676 #undef ContigSpace_PAR_OOP_ITERATE_DEFN |
676 #endif // SERIALGC |
677 #endif // INCLUDE_ALL_GCS |
677 |
678 |
678 void ContiguousSpace::oop_iterate(ExtendedOopClosure* blk) { |
679 void ContiguousSpace::oop_iterate(ExtendedOopClosure* blk) { |
679 if (is_empty()) return; |
680 if (is_empty()) return; |
680 HeapWord* obj_addr = bottom(); |
681 HeapWord* obj_addr = bottom(); |
681 HeapWord* t = top(); |
682 HeapWord* t = top(); |