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

changeset 2661
b099aaf51bf8
parent 2651
92da084fefc9
child 2888
78542e2b5e35
     1.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Mon Mar 21 18:38:00 2011 -0700
     1.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Tue Mar 22 13:36:33 2011 -0700
     1.3 @@ -23,6 +23,7 @@
     1.4   */
     1.5  
     1.6  #include "precompiled.hpp"
     1.7 +#include "classfile/symbolTable.hpp"
     1.8  #include "gc_implementation/parallelScavenge/cardTableExtension.hpp"
     1.9  #include "gc_implementation/parallelScavenge/gcTaskManager.hpp"
    1.10  #include "gc_implementation/parallelScavenge/generationSizer.hpp"
    1.11 @@ -439,6 +440,14 @@
    1.12        reference_processor()->enqueue_discovered_references(NULL);
    1.13      }
    1.14  
    1.15 +    if (!JavaObjectsInPerm) {
    1.16 +      // Unlink any dead interned Strings
    1.17 +      StringTable::unlink(&_is_alive_closure);
    1.18 +      // Process the remaining live ones
    1.19 +      PSScavengeRootsClosure root_closure(promotion_manager);
    1.20 +      StringTable::oops_do(&root_closure);
    1.21 +    }
    1.22 +
    1.23      // Finally, flush the promotion_manager's labs, and deallocate its stacks.
    1.24      PSPromotionManager::post_scavenge();
    1.25  

mercurial