hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp
changeset 23472 35e93890ed88
parent 23450 c7c6202fc7e2
child 25350 6423a57e5451
equal deleted inserted replaced
23471:ec9427262f0a 23472:35e93890ed88
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    29 #include "classfile/vmSymbols.hpp"
    29 #include "classfile/vmSymbols.hpp"
    30 #include "code/codeCache.hpp"
    30 #include "code/codeCache.hpp"
    31 #include "code/icBuffer.hpp"
    31 #include "code/icBuffer.hpp"
    32 #include "gc_implementation/g1/g1Log.hpp"
    32 #include "gc_implementation/g1/g1Log.hpp"
    33 #include "gc_implementation/g1/g1MarkSweep.hpp"
    33 #include "gc_implementation/g1/g1MarkSweep.hpp"
       
    34 #include "gc_implementation/g1/g1StringDedup.hpp"
    34 #include "gc_implementation/shared/gcHeapSummary.hpp"
    35 #include "gc_implementation/shared/gcHeapSummary.hpp"
    35 #include "gc_implementation/shared/gcTimer.hpp"
    36 #include "gc_implementation/shared/gcTimer.hpp"
    36 #include "gc_implementation/shared/gcTrace.hpp"
    37 #include "gc_implementation/shared/gcTrace.hpp"
    37 #include "gc_implementation/shared/gcTraceTime.hpp"
    38 #include "gc_implementation/shared/gcTraceTime.hpp"
    38 #include "memory/gcLocker.hpp"
    39 #include "memory/gcLocker.hpp"
   314 
   315 
   315   // Now adjust pointers in remaining weak roots.  (All of which should
   316   // Now adjust pointers in remaining weak roots.  (All of which should
   316   // have been cleared if they pointed to non-surviving objects.)
   317   // have been cleared if they pointed to non-surviving objects.)
   317   sh->process_weak_roots(&GenMarkSweep::adjust_pointer_closure);
   318   sh->process_weak_roots(&GenMarkSweep::adjust_pointer_closure);
   318 
   319 
       
   320   if (G1StringDedup::is_enabled()) {
       
   321     G1StringDedup::oops_do(&GenMarkSweep::adjust_pointer_closure);
       
   322   }
       
   323 
   319   GenMarkSweep::adjust_marks();
   324   GenMarkSweep::adjust_marks();
   320 
   325 
   321   G1AdjustPointersClosure blk;
   326   G1AdjustPointersClosure blk;
   322   g1h->heap_region_iterate(&blk);
   327   g1h->heap_region_iterate(&blk);
   323 }
   328 }