equal
deleted
inserted
replaced
98 break; |
98 break; |
99 |
99 |
100 |
100 |
101 case code_cache: |
101 case code_cache: |
102 { |
102 { |
103 MarkingCodeBlobClosure each_scavengable_code_blob(&roots_to_old_closure, CodeBlobToOopClosure::FixRelocations); |
103 CodeBlobToOopClosure each_scavengable_code_blob(&roots_to_old_closure, /*do_marking=*/ true); |
104 CodeCache::scavenge_root_nmethods_do(&each_scavengable_code_blob); |
104 CodeCache::scavenge_root_nmethods_do(&each_scavengable_code_blob); |
105 } |
105 } |
106 break; |
106 break; |
107 |
107 |
108 default: |
108 default: |
121 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
121 assert(Universe::heap()->is_gc_active(), "called outside gc"); |
122 |
122 |
123 PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); |
123 PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); |
124 PSScavengeRootsClosure roots_closure(pm); |
124 PSScavengeRootsClosure roots_closure(pm); |
125 CLDClosure* roots_from_clds = NULL; // Not needed. All CLDs are already visited. |
125 CLDClosure* roots_from_clds = NULL; // Not needed. All CLDs are already visited. |
126 MarkingCodeBlobClosure roots_in_blobs(&roots_closure, CodeBlobToOopClosure::FixRelocations); |
126 CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true); |
127 |
127 |
128 if (_java_thread != NULL) |
128 if (_java_thread != NULL) |
129 _java_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs); |
129 _java_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs); |
130 |
130 |
131 if (_vm_thread != NULL) |
131 if (_vm_thread != NULL) |