1198 // Check mark and maybe push on marking stack |
1198 // Check mark and maybe push on marking stack |
1199 template <class T> static inline void mark_and_push(ParCompactionManager* cm, |
1199 template <class T> static inline void mark_and_push(ParCompactionManager* cm, |
1200 T* p); |
1200 T* p); |
1201 template <class T> static inline void adjust_pointer(T* p); |
1201 template <class T> static inline void adjust_pointer(T* p); |
1202 |
1202 |
1203 static void follow_klass(ParCompactionManager* cm, Klass* klass); |
1203 static inline void follow_klass(ParCompactionManager* cm, Klass* klass); |
1204 static void adjust_klass(ParCompactionManager* cm, Klass* klass); |
|
1205 |
1204 |
1206 static void follow_class_loader(ParCompactionManager* cm, |
1205 static void follow_class_loader(ParCompactionManager* cm, |
1207 ClassLoaderData* klass); |
|
1208 static void adjust_class_loader(ParCompactionManager* cm, |
|
1209 ClassLoaderData* klass); |
1206 ClassLoaderData* klass); |
1210 |
1207 |
1211 // Compaction support. |
1208 // Compaction support. |
1212 // Return true if p is in the range [beg_addr, end_addr). |
1209 // Return true if p is in the range [beg_addr, end_addr). |
1213 static inline bool is_in(HeapWord* p, HeapWord* beg_addr, HeapWord* end_addr); |
1210 static inline bool is_in(HeapWord* p, HeapWord* beg_addr, HeapWord* end_addr); |
1378 oopDesc::encode_store_heap_oop_not_null(p, new_obj); |
1375 oopDesc::encode_store_heap_oop_not_null(p, new_obj); |
1379 } |
1376 } |
1380 } |
1377 } |
1381 } |
1378 } |
1382 |
1379 |
|
1380 inline void PSParallelCompact::follow_klass(ParCompactionManager* cm, Klass* klass) { |
|
1381 oop holder = klass->klass_holder(); |
|
1382 PSParallelCompact::mark_and_push(cm, &holder); |
|
1383 } |
|
1384 |
1383 template <class T> |
1385 template <class T> |
1384 inline void PSParallelCompact::KeepAliveClosure::do_oop_work(T* p) { |
1386 inline void PSParallelCompact::KeepAliveClosure::do_oop_work(T* p) { |
1385 mark_and_push(_compaction_manager, p); |
1387 mark_and_push(_compaction_manager, p); |
1386 } |
1388 } |
1387 |
1389 |