8266765: [BACKOUT] JDK-8255493 Support for pre-generated java.lang.invoke classes in CDS dynamic archive

Reviewed-by: ccheung
This commit is contained in:
Yumin Qi 2021-05-07 23:49:00 +00:00
parent 0790e6016e
commit 04fad70437
11 changed files with 59 additions and 260 deletions

View file

@ -2205,19 +2205,6 @@ SystemDictionaryShared::find_record(RunTimeSharedDictionary* static_dict, RunTim
unsigned int hash = SystemDictionaryShared::hash_for_shared_dictionary_quick(name);
const RunTimeSharedClassInfo* record = NULL;
if (DynamicArchive::is_mapped()) {
// Those regenerated holder classes are in dynamic archive
if (name == vmSymbols::java_lang_invoke_Invokers_Holder() ||
name == vmSymbols::java_lang_invoke_DirectMethodHandle_Holder() ||
name == vmSymbols::java_lang_invoke_LambdaForm_Holder() ||
name == vmSymbols::java_lang_invoke_DelegatingMethodHandle_Holder()) {
record = dynamic_dict->lookup(name, hash, 0);
if (record != nullptr) {
return record;
}
}
}
if (!MetaspaceShared::is_shared_dynamic(name)) {
// The names of all shared classes in the static dict must also be in the
// static archive
@ -2274,7 +2261,7 @@ public:
void do_value(const RunTimeSharedClassInfo* record) {
ResourceMark rm;
_st->print_cr("%4d: %s %s", _index++, record->_klass->external_name(),
_st->print_cr("%4d: %s %s", (_index++), record->_klass->external_name(),
class_loader_name_for_shared(record->_klass));
}
int index() const { return _index; }
@ -2291,7 +2278,7 @@ public:
ResourceMark rm;
Klass* k = record->proxy_klass_head();
while (k != nullptr) {
_st->print_cr("%4d: %s %s", _index++, k->external_name(),
_st->print_cr("%4d: %s %s", (++_index), k->external_name(),
class_loader_name_for_shared(k));
k = k->next_link();
}