< prev index next >

src/hotspot/share/oops/klass.cpp

Print this page
@@ -53,10 +53,11 @@
  #include "prims/jvmtiExport.hpp"
  #include "runtime/atomic.hpp"
  #include "runtime/handles.inline.hpp"
  #include "runtime/perfData.hpp"
  #include "utilities/macros.hpp"
+ #include "utilities/numberSeq.hpp"
  #include "utilities/powerOfTwo.hpp"
  #include "utilities/rotate_bits.hpp"
  #include "utilities/stack.inline.hpp"
  
  void Klass::set_java_mirror(Handle m) {

@@ -1322,5 +1323,15 @@
    super->print();
    sub->print();
    fatal("%s: %s implements %s: linear_search: %d; table_lookup: %d",
          msg, sub->external_name(), super->external_name(), linear_result, table_result);
  }
+ 
+ static int expanded = 0;
+ static int not_expanded = 0;
+ static NumberSeq seq = NumberSeq();
+ 
+ bool Klass::expand_for_hash(oop obj) const {
+   assert(UseCompactObjectHeaders, "only with compact i-hash");
+   assert((size_t)hash_offset_in_bytes(obj) <= (obj->base_size_given_klass(obj->mark(), this) * HeapWordSize), "hash offset must be eq or lt base size: hash offset: %d, base size: " SIZE_FORMAT, hash_offset_in_bytes(obj), obj->base_size_given_klass(obj->mark(), this) * HeapWordSize);
+   return obj->base_size_given_klass(obj->mark(), this) * HeapWordSize - hash_offset_in_bytes(obj) < (int)sizeof(uint32_t);
+ }
< prev index next >