2571 // restore constant pool resolved references
2572 constants()->restore_unshareable_info(CHECK);
2573
2574 if (array_klasses() != NULL) {
2575 // To get a consistent list of classes we need MultiArray_lock to ensure
2576 // array classes aren't observed while they are being restored.
2577 MutexLocker ml(MultiArray_lock);
2578 // Array classes have null protection domain.
2579 // --> see ArrayKlass::complete_create_array_klass()
2580 array_klasses()->restore_unshareable_info(ClassLoaderData::the_null_class_loader_data(), Handle(), CHECK);
2581 }
2582
2583 // Initialize current biased locking state.
2584 if (UseBiasedLocking && BiasedLocking::enabled()) {
2585 set_prototype_header(markWord::biased_locking_prototype());
2586 }
2587
2588 // Initialize @ValueBased class annotation
2589 if (DiagnoseSyncOnValueBasedClasses && has_value_based_class_annotation()) {
2590 set_is_value_based();
2591 set_prototype_header(markWord::prototype());
2592 }
2593 }
2594
2595 // Check if a class or any of its supertypes has a version older than 50.
2596 // CDS will not perform verification of old classes during dump time because
2597 // without changing the old verifier, the verification constraint cannot be
2598 // retrieved during dump time.
2599 // Verification of archived old classes will be performed during run time.
2600 bool InstanceKlass::can_be_verified_at_dumptime() const {
2601 if (major_version() < 50 /*JAVA_6_VERSION*/) {
2602 return false;
2603 }
2604 if (java_super() != NULL && !java_super()->can_be_verified_at_dumptime()) {
2605 return false;
2606 }
2607 Array<InstanceKlass*>* interfaces = local_interfaces();
2608 int len = interfaces->length();
2609 for (int i = 0; i < len; i++) {
2610 if (!interfaces->at(i)->can_be_verified_at_dumptime()) {
2611 return false;
|
2571 // restore constant pool resolved references
2572 constants()->restore_unshareable_info(CHECK);
2573
2574 if (array_klasses() != NULL) {
2575 // To get a consistent list of classes we need MultiArray_lock to ensure
2576 // array classes aren't observed while they are being restored.
2577 MutexLocker ml(MultiArray_lock);
2578 // Array classes have null protection domain.
2579 // --> see ArrayKlass::complete_create_array_klass()
2580 array_klasses()->restore_unshareable_info(ClassLoaderData::the_null_class_loader_data(), Handle(), CHECK);
2581 }
2582
2583 // Initialize current biased locking state.
2584 if (UseBiasedLocking && BiasedLocking::enabled()) {
2585 set_prototype_header(markWord::biased_locking_prototype());
2586 }
2587
2588 // Initialize @ValueBased class annotation
2589 if (DiagnoseSyncOnValueBasedClasses && has_value_based_class_annotation()) {
2590 set_is_value_based();
2591 markWord prototype = markWord::prototype();
2592 #ifdef _LP64
2593 if (UseCompactObjectHeaders) {
2594 prototype = prototype.set_klass(this);
2595 }
2596 #endif
2597 set_prototype_header(prototype);
2598 }
2599 }
2600
2601 // Check if a class or any of its supertypes has a version older than 50.
2602 // CDS will not perform verification of old classes during dump time because
2603 // without changing the old verifier, the verification constraint cannot be
2604 // retrieved during dump time.
2605 // Verification of archived old classes will be performed during run time.
2606 bool InstanceKlass::can_be_verified_at_dumptime() const {
2607 if (major_version() < 50 /*JAVA_6_VERSION*/) {
2608 return false;
2609 }
2610 if (java_super() != NULL && !java_super()->can_be_verified_at_dumptime()) {
2611 return false;
2612 }
2613 Array<InstanceKlass*>* interfaces = local_interfaces();
2614 int len = interfaces->length();
2615 for (int i = 0; i < len; i++) {
2616 if (!interfaces->at(i)->can_be_verified_at_dumptime()) {
2617 return false;
|