1110 |
1110 |
1111 // Test whether objAddr might have already been passed over by the |
1111 // Test whether objAddr might have already been passed over by the |
1112 // mark bitmap scan, and so needs to be pushed onto the mark stack. |
1112 // mark bitmap scan, and so needs to be pushed onto the mark stack. |
1113 bool is_below_finger(HeapWord* objAddr, HeapWord* global_finger) const; |
1113 bool is_below_finger(HeapWord* objAddr, HeapWord* global_finger) const; |
1114 |
1114 |
|
1115 template<bool scan> void process_grey_object(oop obj); |
|
1116 |
1115 public: |
1117 public: |
1116 // It resets the task; it should be called right at the beginning of |
1118 // It resets the task; it should be called right at the beginning of |
1117 // a marking phase. |
1119 // a marking phase. |
1118 void reset(CMBitMap* _nextMarkBitMap); |
1120 void reset(CMBitMap* _nextMarkBitMap); |
1119 // it clears all the fields that correspond to a claimed region. |
1121 // it clears all the fields that correspond to a claimed region. |
1162 // It grays the object by marking it and, if necessary, pushing it |
1164 // It grays the object by marking it and, if necessary, pushing it |
1163 // on the local queue |
1165 // on the local queue |
1164 inline void deal_with_reference(oop obj); |
1166 inline void deal_with_reference(oop obj); |
1165 |
1167 |
1166 // It scans an object and visits its children. |
1168 // It scans an object and visits its children. |
1167 void scan_object(oop obj); |
1169 void scan_object(oop obj) { process_grey_object<true>(obj); } |
1168 |
1170 |
1169 // It pushes an object on the local queue. |
1171 // It pushes an object on the local queue. |
1170 inline void push(oop obj); |
1172 inline void push(oop obj); |
1171 |
1173 |
1172 // These two move entries to/from the global stack. |
1174 // These two move entries to/from the global stack. |