< prev index next >

src/hotspot/share/oops/klass.cpp

Print this page
*** 395,11 ***
    if (length >= SECONDARY_SUPERS_TABLE_SIZE) {
      return SECONDARY_SUPERS_BITMAP_FULL;
    }
  
    {
!     PerfTraceTime ptt(ClassLoader::perf_secondary_hash_time());
  
      ResourceMark rm;
      uintx bitmap = SECONDARY_SUPERS_BITMAP_EMPTY;
      auto hashed_secondaries = new GrowableArray<Klass*>(SECONDARY_SUPERS_TABLE_SIZE,
                                                          SECONDARY_SUPERS_TABLE_SIZE, nullptr);
--- 395,11 ---
    if (length >= SECONDARY_SUPERS_TABLE_SIZE) {
      return SECONDARY_SUPERS_BITMAP_FULL;
    }
  
    {
!     //PerfTraceTime ptt(ClassLoader::perf_secondary_hash_time()); // Leyden FIXME
  
      ResourceMark rm;
      uintx bitmap = SECONDARY_SUPERS_BITMAP_EMPTY;
      auto hashed_secondaries = new GrowableArray<Klass*>(SECONDARY_SUPERS_TABLE_SIZE,
                                                          SECONDARY_SUPERS_TABLE_SIZE, nullptr);

*** 828,12 ***
    if (CDSConfig::is_dumping_heap()) {
      Klass* src_k = ArchiveBuilder::current()->get_source_addr(this);
      oop orig_mirror = src_k->java_mirror();
      if (orig_mirror == nullptr) {
        assert(CDSConfig::is_dumping_final_static_archive(), "sanity");
!       assert(is_instance_klass(), "sanity");
!       assert(InstanceKlass::cast(this)->is_shared_unregistered_class(), "sanity");
      } else {
        oop scratch_mirror = HeapShared::scratch_java_mirror(orig_mirror);
        if (scratch_mirror != nullptr) {
          _archived_mirror_index = HeapShared::append_root(scratch_mirror);
        }
--- 828,18 ---
    if (CDSConfig::is_dumping_heap()) {
      Klass* src_k = ArchiveBuilder::current()->get_source_addr(this);
      oop orig_mirror = src_k->java_mirror();
      if (orig_mirror == nullptr) {
        assert(CDSConfig::is_dumping_final_static_archive(), "sanity");
!       if (is_instance_klass()) {
!         assert(InstanceKlass::cast(this)->is_shared_unregistered_class(), "sanity");
+       } else {
+         precond(is_objArray_klass());
+         Klass *k = ObjArrayKlass::cast(this)->bottom_klass();
+         precond(k->is_instance_klass());
+         assert(InstanceKlass::cast(k)->is_shared_unregistered_class(), "sanity");
+       }
      } else {
        oop scratch_mirror = HeapShared::scratch_java_mirror(orig_mirror);
        if (scratch_mirror != nullptr) {
          _archived_mirror_index = HeapShared::append_root(scratch_mirror);
        }
< prev index next >