src/hotspot/share/gc/g1/g1SurvivorRegions.cpp
changeset 59062 6530de931b8e
parent 54467 0c5d713cf43f
equal deleted inserted replaced
59061:df6f2350edfa 59062:6530de931b8e
    28 #include "utilities/growableArray.hpp"
    28 #include "utilities/growableArray.hpp"
    29 #include "utilities/debug.hpp"
    29 #include "utilities/debug.hpp"
    30 
    30 
    31 G1SurvivorRegions::G1SurvivorRegions() :
    31 G1SurvivorRegions::G1SurvivorRegions() :
    32   _regions(new (ResourceObj::C_HEAP, mtGC) GrowableArray<HeapRegion*>(8, true, mtGC)),
    32   _regions(new (ResourceObj::C_HEAP, mtGC) GrowableArray<HeapRegion*>(8, true, mtGC)),
    33   _used_bytes(0) {}
    33   _used_bytes(0),
       
    34   _regions_on_node() {}
    34 
    35 
    35 void G1SurvivorRegions::add(HeapRegion* hr) {
    36 uint G1SurvivorRegions::add(HeapRegion* hr) {
    36   assert(hr->is_survivor(), "should be flagged as survivor region");
    37   assert(hr->is_survivor(), "should be flagged as survivor region");
    37   _regions->append(hr);
    38   _regions->append(hr);
       
    39   return _regions_on_node.add(hr);
    38 }
    40 }
    39 
    41 
    40 uint G1SurvivorRegions::length() const {
    42 uint G1SurvivorRegions::length() const {
    41   return (uint)_regions->length();
    43   return (uint)_regions->length();
       
    44 }
       
    45 
       
    46 uint G1SurvivorRegions::regions_on_node(uint node_index) const {
       
    47   return _regions_on_node.count(node_index);
    42 }
    48 }
    43 
    49 
    44 void G1SurvivorRegions::convert_to_eden() {
    50 void G1SurvivorRegions::convert_to_eden() {
    45   for (GrowableArrayIterator<HeapRegion*> it = _regions->begin();
    51   for (GrowableArrayIterator<HeapRegion*> it = _regions->begin();
    46        it != _regions->end();
    52        it != _regions->end();
    52 }
    58 }
    53 
    59 
    54 void G1SurvivorRegions::clear() {
    60 void G1SurvivorRegions::clear() {
    55   _regions->clear();
    61   _regions->clear();
    56   _used_bytes = 0;
    62   _used_bytes = 0;
       
    63   _regions_on_node.clear();
    57 }
    64 }
    58 
    65 
    59 void G1SurvivorRegions::add_used_bytes(size_t used_bytes) {
    66 void G1SurvivorRegions::add_used_bytes(size_t used_bytes) {
    60   _used_bytes += used_bytes;
    67   _used_bytes += used_bytes;
    61 }
    68 }