< prev index next >

src/share/vm/memory/metaspaceShared.cpp

Print this page




 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();


< prev index next >