Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp
          +++ new/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp
   1    1  /*
   2      - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
        2 + * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
   3    3   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4    4   *
   5    5   * This code is free software; you can redistribute it and/or modify it
   6    6   * under the terms of the GNU General Public License version 2 only, as
   7    7   * published by the Free Software Foundation.
   8    8   *
   9    9   * This code is distributed in the hope that it will be useful, but WITHOUT
  10   10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11   11   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12   12   * version 2 for more details (a copy is included in the LICENSE file that
↓ open down ↓ 115 lines elided ↑ open up ↑
 128  128  
 129  129    template <class T> static inline bool should_scavenge(T* p);
 130  130  
 131  131    // These call should_scavenge() above and, if it returns true, also check that
 132  132    // the object was not newly copied into to_space.  The version with the bool
 133  133    // argument is a convenience wrapper that fetches the to_space pointer from
 134  134    // the heap and calls the other version (if the arg is true).
 135  135    template <class T> static inline bool should_scavenge(T* p, MutableSpace* to_space);
 136  136    template <class T> static inline bool should_scavenge(T* p, bool check_to_space);
 137  137  
 138      -  template <class T> inline static void copy_and_push_safe_barrier(PSPromotionManager* pm, T* p);
      138 +  template <class T, bool promote_immediately>
      139 +    inline static void copy_and_push_safe_barrier(PSPromotionManager* pm, T* p);
 139  140  
 140  141    // Is an object in the young generation
 141  142    // This assumes that the HeapWord argument is in the heap,
 142  143    // so it only checks one side of the complete predicate.
 143  144    inline static bool is_obj_in_young(HeapWord* o) {
 144  145      const bool result = (o >= _young_generation_boundary);
 145  146      return result;
 146  147    }
 147  148  };
 148  149  
 149  150  #endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_HPP
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX