src/share/vm/memory/defNewGeneration.cpp

changeset 888
c96030fff130
parent 791
1ee8caae33af
child 892
27a80744a83b
     1.1 --- a/src/share/vm/memory/defNewGeneration.cpp	Thu Nov 20 12:27:41 2008 -0800
     1.2 +++ b/src/share/vm/memory/defNewGeneration.cpp	Thu Nov 20 16:56:09 2008 -0800
     1.3 @@ -540,14 +540,6 @@
     1.4    assert(gch->no_allocs_since_save_marks(0),
     1.5           "save marks have not been newly set.");
     1.6  
     1.7 -  // Weak refs.
     1.8 -  // FIXME: Are these storage leaks, or are they resource objects?
     1.9 -#ifdef COMPILER2
    1.10 -  ReferencePolicy *soft_ref_policy = new LRUMaxHeapPolicy();
    1.11 -#else
    1.12 -  ReferencePolicy *soft_ref_policy = new LRUCurrentHeapPolicy();
    1.13 -#endif // COMPILER2
    1.14 -
    1.15    // Not very pretty.
    1.16    CollectorPolicy* cp = gch->collector_policy();
    1.17  
    1.18 @@ -574,8 +566,10 @@
    1.19    evacuate_followers.do_void();
    1.20  
    1.21    FastKeepAliveClosure keep_alive(this, &scan_weak_ref);
    1.22 -  ref_processor()->process_discovered_references(
    1.23 -    soft_ref_policy, &is_alive, &keep_alive, &evacuate_followers, NULL);
    1.24 +  ReferenceProcessor* rp = ref_processor();
    1.25 +  rp->snap_policy(clear_all_soft_refs);
    1.26 +  rp->process_discovered_references(&is_alive, &keep_alive, &evacuate_followers,
    1.27 +                                    NULL);
    1.28    if (!promotion_failed()) {
    1.29      // Swap the survivor spaces.
    1.30      eden()->clear(SpaceDecorator::Mangle);

mercurial