src/hotspot/share/classfile/dictionary.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File open Sdiff src/hotspot/share/classfile

src/hotspot/share/classfile/dictionary.cpp

Print this page




 486     DictionaryEntry* p = bucket(i);
 487     while (p != NULL) {
 488       DictionaryEntry* next = p->next();
 489       InstanceKlass*ik = p->instance_klass();
 490       if (ik->has_signer_and_not_archived()) {
 491         // We cannot include signed classes in the archive because the certificates
 492         // used during dump time may be different than those used during
 493         // runtime (due to expiration, etc).
 494         ResourceMark rm;
 495         tty->print_cr("Preload Warning: Skipping %s from signed JAR",
 496                        ik->name()->as_C_string());
 497         free_entry(p);
 498       } else if (is_jfr_event_class(ik)) {
 499         // We cannot include JFR event classes because they need runtime-specific
 500         // instrumentation in order to work with -XX:FlightRecorderOptions=retransform=false.
 501         // There are only a small number of these classes, so it's not worthwhile to
 502         // support them and make CDS more complicated.
 503         ResourceMark rm;
 504         tty->print_cr("Skipping JFR event class %s", ik->name()->as_C_string());
 505         free_entry(p);






 506       } else {
 507         p->set_next(master_list);
 508         master_list = p;
 509       }
 510       p = next;
 511     }
 512     set_entry(i, NULL);
 513   }
 514 
 515   // Add the dictionary entries back to the list in the correct buckets.
 516   while (master_list != NULL) {
 517     DictionaryEntry* p = master_list;
 518     master_list = master_list->next();
 519     p->set_next(NULL);
 520     Symbol* class_name = p->instance_klass()->name();
 521     // Since the null class loader data isn't copied to the CDS archive,
 522     // compute the hash with NULL for loader data.
 523     unsigned int hash = compute_hash(class_name);
 524     int index = hash_to_index(hash);
 525     p->set_hash(hash);




 486     DictionaryEntry* p = bucket(i);
 487     while (p != NULL) {
 488       DictionaryEntry* next = p->next();
 489       InstanceKlass*ik = p->instance_klass();
 490       if (ik->has_signer_and_not_archived()) {
 491         // We cannot include signed classes in the archive because the certificates
 492         // used during dump time may be different than those used during
 493         // runtime (due to expiration, etc).
 494         ResourceMark rm;
 495         tty->print_cr("Preload Warning: Skipping %s from signed JAR",
 496                        ik->name()->as_C_string());
 497         free_entry(p);
 498       } else if (is_jfr_event_class(ik)) {
 499         // We cannot include JFR event classes because they need runtime-specific
 500         // instrumentation in order to work with -XX:FlightRecorderOptions=retransform=false.
 501         // There are only a small number of these classes, so it's not worthwhile to
 502         // support them and make CDS more complicated.
 503         ResourceMark rm;
 504         tty->print_cr("Skipping JFR event class %s", ik->name()->as_C_string());
 505         free_entry(p);
 506       } else if (ik->has_been_redefined()) {
 507         // Similar to the above, we cannot include classes which has beed redefined during
 508         // dump time.
 509         ResourceMark rm;
 510         tty->print_cr("Skipping redefined class %s", ik->name()->as_C_string());
 511         free_entry(p);
 512       } else {
 513         p->set_next(master_list);
 514         master_list = p;
 515       }
 516       p = next;
 517     }
 518     set_entry(i, NULL);
 519   }
 520 
 521   // Add the dictionary entries back to the list in the correct buckets.
 522   while (master_list != NULL) {
 523     DictionaryEntry* p = master_list;
 524     master_list = master_list->next();
 525     p->set_next(NULL);
 526     Symbol* class_name = p->instance_klass()->name();
 527     // Since the null class loader data isn't copied to the CDS archive,
 528     // compute the hash with NULL for loader data.
 529     unsigned int hash = compute_hash(class_name);
 530     int index = hash_to_index(hash);
 531     p->set_hash(hash);


src/hotspot/share/classfile/dictionary.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File