523 Universe::init_self_patching_vtbl_list(vtbl_list, vtbl_list_size);
524
525 md_top += vtbl_list_size * sizeof(void*);
526 void* vtable = md_top;
527
528 // Reserve space for a new dummy vtable for klass objects in the
529 // heap. Generate self-patching vtable entries.
530
531 MetaspaceShared::generate_vtable_methods(vtbl_list, &vtable,
532 &md_top, md_end,
533 &mc_top, mc_end);
534
535 // Reorder the system dictionary. (Moving the symbols affects
536 // how the hash table indices are calculated.)
537 // Not doing this either.
538
539 SystemDictionary::reorder_dictionary();
540
541 NOT_PRODUCT(SystemDictionary::verify();)
542
543 // Copy the the symbol table, string table, and the system dictionary to the shared
544 // space in usable form. Copy the hashtable
545 // buckets first [read-write], then copy the linked lists of entries
546 // [read-only].
547
548 NOT_PRODUCT(SymbolTable::verify());
549 handle_misc_data_space_failure(SymbolTable::copy_compact_table(&md_top, md_end));
550
551 size_t ss_bytes = 0;
552 char* ss_low;
553 // The string space has maximum two regions. See FileMapInfo::write_string_regions() for details.
554 _string_regions = new GrowableArray<MemRegion>(2);
555 NOT_PRODUCT(StringTable::verify());
556 handle_misc_data_space_failure(StringTable::copy_compact_table(&md_top, md_end, _string_regions,
557 &ss_bytes));
558 ss_low = _string_regions->is_empty() ? NULL : (char*)_string_regions->first().start();
559
560 SystemDictionary::reverse();
561 SystemDictionary::copy_buckets(&md_top, md_end);
562
563 ClassLoader::verify();
|
523 Universe::init_self_patching_vtbl_list(vtbl_list, vtbl_list_size);
524
525 md_top += vtbl_list_size * sizeof(void*);
526 void* vtable = md_top;
527
528 // Reserve space for a new dummy vtable for klass objects in the
529 // heap. Generate self-patching vtable entries.
530
531 MetaspaceShared::generate_vtable_methods(vtbl_list, &vtable,
532 &md_top, md_end,
533 &mc_top, mc_end);
534
535 // Reorder the system dictionary. (Moving the symbols affects
536 // how the hash table indices are calculated.)
537 // Not doing this either.
538
539 SystemDictionary::reorder_dictionary();
540
541 NOT_PRODUCT(SystemDictionary::verify();)
542
543 // Copy the symbol table, string table, and the system dictionary to the shared
544 // space in usable form. Copy the hashtable
545 // buckets first [read-write], then copy the linked lists of entries
546 // [read-only].
547
548 NOT_PRODUCT(SymbolTable::verify());
549 handle_misc_data_space_failure(SymbolTable::copy_compact_table(&md_top, md_end));
550
551 size_t ss_bytes = 0;
552 char* ss_low;
553 // The string space has maximum two regions. See FileMapInfo::write_string_regions() for details.
554 _string_regions = new GrowableArray<MemRegion>(2);
555 NOT_PRODUCT(StringTable::verify());
556 handle_misc_data_space_failure(StringTable::copy_compact_table(&md_top, md_end, _string_regions,
557 &ss_bytes));
558 ss_low = _string_regions->is_empty() ? NULL : (char*)_string_regions->first().start();
559
560 SystemDictionary::reverse();
561 SystemDictionary::copy_buckets(&md_top, md_end);
562
563 ClassLoader::verify();
|