comparison src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @ 941:8b46c4d82093

4957990: Perm heap bloat in JVM Summary: Treat ProfileData in MDO's as a source of weak, not strong, roots. Fixes the bug for stop-world collection -- the case of concurrent collection will be fixed separately. Reviewed-by: jcoomes, jmasa, kvn, never
author ysr
date Wed, 02 Sep 2009 00:04:29 -0700
parents 0fbdb4381b99
children 54b3b351d6f9
comparison
equal deleted inserted replaced
940:8624da129f0b 941:8b46c4d82093
899 899
900 // Mark live objects 900 // Mark live objects
901 static void marking_phase(ParCompactionManager* cm, 901 static void marking_phase(ParCompactionManager* cm,
902 bool maximum_heap_compaction); 902 bool maximum_heap_compaction);
903 static void follow_stack(ParCompactionManager* cm); 903 static void follow_stack(ParCompactionManager* cm);
904 static void follow_weak_klass_links(ParCompactionManager* cm); 904 static void follow_weak_klass_links();
905 static void follow_mdo_weak_refs();
905 906
906 template <class T> static inline void adjust_pointer(T* p, bool is_root); 907 template <class T> static inline void adjust_pointer(T* p, bool is_root);
907 static void adjust_root_pointer(oop* p) { adjust_pointer(p, true); } 908 static void adjust_root_pointer(oop* p) { adjust_pointer(p, true); }
908 909
909 template <class T> 910 template <class T>
1218 #endif // #ifdef VALIDATE_MARK_SWEEP 1219 #endif // #ifdef VALIDATE_MARK_SWEEP
1219 1220
1220 // Call backs for class unloading 1221 // Call backs for class unloading
1221 // Update subklass/sibling/implementor links at end of marking. 1222 // Update subklass/sibling/implementor links at end of marking.
1222 static void revisit_weak_klass_link(ParCompactionManager* cm, Klass* k); 1223 static void revisit_weak_klass_link(ParCompactionManager* cm, Klass* k);
1224
1225 // Clear unmarked oops in MDOs at the end of marking.
1226 static void revisit_mdo(ParCompactionManager* cm, DataLayout* p);
1223 1227
1224 #ifndef PRODUCT 1228 #ifndef PRODUCT
1225 // Debugging support. 1229 // Debugging support.
1226 static const char* space_names[last_space_id]; 1230 static const char* space_names[last_space_id];
1227 static void print_region_ranges(); 1231 static void print_region_ranges();