src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp

changeset 6992
2c6ef90f030a
parent 6973
4af19b914f53
child 7535
7ae4e26cb1e0
equal deleted inserted replaced
6991:882004b9e7e1 6992:2c6ef90f030a
98 break; 98 break;
99 99
100 100
101 case code_cache: 101 case code_cache:
102 { 102 {
103 CodeBlobToOopClosure each_scavengable_code_blob(&roots_to_old_closure, /*do_marking=*/ true); 103 MarkingCodeBlobClosure each_scavengable_code_blob(&roots_to_old_closure, CodeBlobToOopClosure::FixRelocations);
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 CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true); 126 MarkingCodeBlobClosure roots_in_blobs(&roots_closure, CodeBlobToOopClosure::FixRelocations);
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)

mercurial