< prev index next >

src/hotspot/share/oops/klass.cpp

Print this page
@@ -395,11 +395,11 @@
    if (length >= SECONDARY_SUPERS_TABLE_SIZE) {
      return SECONDARY_SUPERS_BITMAP_FULL;
    }
  
    {
-     PerfTraceTime ptt(ClassLoader::perf_secondary_hash_time());
+     //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 +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");
-       assert(is_instance_klass(), "sanity");
-       assert(InstanceKlass::cast(this)->is_shared_unregistered_class(), "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 >