hotspot/src/share/vm/gc/g1/g1InCSetState.hpp
changeset 33105 294e48b4f704
parent 31592 43f48e165466
child 33228 9a491d1be90f
equal deleted inserted replaced
33104:a7c0f60a1294 33105:294e48b4f704
    65     Old          =  2,    // The region is in the collection set and an old region.
    65     Old          =  2,    // The region is in the collection set and an old region.
    66     Num
    66     Num
    67   };
    67   };
    68 
    68 
    69   InCSetState(in_cset_state_t value = NotInCSet) : _value(value) {
    69   InCSetState(in_cset_state_t value = NotInCSet) : _value(value) {
    70     assert(is_valid(), err_msg("Invalid state %d", _value));
    70     assert(is_valid(), "Invalid state %d", _value);
    71   }
    71   }
    72 
    72 
    73   in_cset_state_t value() const        { return _value; }
    73   in_cset_state_t value() const        { return _value; }
    74 
    74 
    75   void set_old()                       { _value = Old; }
    75   void set_old()                       { _value = Old; }
   102  protected:
   102  protected:
   103   InCSetState default_value() const { return InCSetState::NotInCSet; }
   103   InCSetState default_value() const { return InCSetState::NotInCSet; }
   104  public:
   104  public:
   105   void set_humongous(uintptr_t index) {
   105   void set_humongous(uintptr_t index) {
   106     assert(get_by_index(index).is_default(),
   106     assert(get_by_index(index).is_default(),
   107            err_msg("State at index " INTPTR_FORMAT " should be default but is " CSETSTATE_FORMAT, index, get_by_index(index).value()));
   107            "State at index " INTPTR_FORMAT " should be default but is " CSETSTATE_FORMAT, index, get_by_index(index).value());
   108     set_by_index(index, InCSetState::Humongous);
   108     set_by_index(index, InCSetState::Humongous);
   109   }
   109   }
   110 
   110 
   111   void clear_humongous(uintptr_t index) {
   111   void clear_humongous(uintptr_t index) {
   112     set_by_index(index, InCSetState::NotInCSet);
   112     set_by_index(index, InCSetState::NotInCSet);
   113   }
   113   }
   114 
   114 
   115   void set_in_young(uintptr_t index) {
   115   void set_in_young(uintptr_t index) {
   116     assert(get_by_index(index).is_default(),
   116     assert(get_by_index(index).is_default(),
   117            err_msg("State at index " INTPTR_FORMAT " should be default but is " CSETSTATE_FORMAT, index, get_by_index(index).value()));
   117            "State at index " INTPTR_FORMAT " should be default but is " CSETSTATE_FORMAT, index, get_by_index(index).value());
   118     set_by_index(index, InCSetState::Young);
   118     set_by_index(index, InCSetState::Young);
   119   }
   119   }
   120 
   120 
   121   void set_in_old(uintptr_t index) {
   121   void set_in_old(uintptr_t index) {
   122     assert(get_by_index(index).is_default(),
   122     assert(get_by_index(index).is_default(),
   123            err_msg("State at index " INTPTR_FORMAT " should be default but is " CSETSTATE_FORMAT, index, get_by_index(index).value()));
   123            "State at index " INTPTR_FORMAT " should be default but is " CSETSTATE_FORMAT, index, get_by_index(index).value());
   124     set_by_index(index, InCSetState::Old);
   124     set_by_index(index, InCSetState::Old);
   125   }
   125   }
   126 
   126 
   127   bool is_in_cset_or_humongous(HeapWord* addr) const { return at(addr).is_in_cset_or_humongous(); }
   127   bool is_in_cset_or_humongous(HeapWord* addr) const { return at(addr).is_in_cset_or_humongous(); }
   128   bool is_in_cset(HeapWord* addr) const { return at(addr).is_in_cset(); }
   128   bool is_in_cset(HeapWord* addr) const { return at(addr).is_in_cset(); }