< prev index next >

src/share/vm/gc_implementation/g1/g1InCSetState.hpp

Print this page
rev 7472 : [mq]: 8060025-mikael-review1
rev 7473 : imported patch mikael-refactor-cset-state
rev 7474 : [mq]: kim-review

@@ -28,10 +28,11 @@
 #include "gc_implementation/g1/g1BiasedArray.hpp"
 #include "memory/allocation.hpp"
 
 // Per-region state during garbage collection.
 struct InCSetState {
+ private:
   // We use different types to represent the state value. Particularly SPARC puts
   // values in structs from "left to right", i.e. MSB to LSB. This results in many
   // unnecessary shift operations when loading and storing values of this type.
   // This degrades performance significantly (>10%) on that platform.
   // Other tested ABIs do not seem to have this problem, and actually tend to

@@ -73,11 +74,11 @@
   bool is_young() const                { return _value == Young; }
   bool is_old() const                  { return _value == Old; }
 
 #ifdef ASSERT
   bool is_default() const              { return is_not_in_cset(); }
-  bool is_valid() const                { return _value < Num; }
+  bool is_valid() const                { return (_value >= Humongous) && (_value < Num); }
   bool is_valid_gen() const            { return (_value >= Young && _value <= Old); }
 #endif
 };
 
 // Instances of this class are used for quick tests on whether a reference points
< prev index next >