< prev index next >

src/share/vm/memory/metaspaceShared.cpp

Print this page




 611                         SharedMiscCodeSize,
 612                         true, true);
 613 
 614   // Pass 2 - write data.
 615   mapinfo->open_for_write();
 616   mapinfo->set_header_crc(mapinfo->compute_header_crc());
 617   mapinfo->write_header();
 618   mapinfo->write_space(MetaspaceShared::ro, _loader_data->ro_metaspace(), true);
 619   mapinfo->write_space(MetaspaceShared::rw, _loader_data->rw_metaspace(), false);
 620   mapinfo->write_region(MetaspaceShared::md, _md_vs.low(),
 621                         pointer_delta(md_top, _md_vs.low(), sizeof(char)),
 622                         SharedMiscDataSize,
 623                         false, false);
 624   mapinfo->write_region(MetaspaceShared::mc, _mc_vs.low(),
 625                         pointer_delta(mc_top, _mc_vs.low(), sizeof(char)),
 626                         SharedMiscCodeSize,
 627                         true, true);
 628   mapinfo->close();
 629 
 630   memmove(vtbl_list, saved_vtbl, vtbl_list_size * sizeof(void*));

 631 
 632   if (PrintSharedSpaces) {
 633     DumpAllocClosure dac;
 634     dac.iterate_metaspace(_loader_data->ro_metaspace(), DumpAllocClosure::RO);
 635     dac.iterate_metaspace(_loader_data->rw_metaspace(), DumpAllocClosure::RW);
 636 
 637     dac.dump_stats(int(ro_bytes), int(rw_bytes), int(md_bytes), int(mc_bytes));
 638   }
 639 #undef fmt_space
 640 }
 641 
 642 
 643 void MetaspaceShared::link_one_shared_class(Klass* obj, TRAPS) {
 644   Klass* k = obj;
 645   if (k->oop_is_instance()) {
 646     InstanceKlass* ik = (InstanceKlass*) k;
 647     // Link the class to cause the bytecodes to be rewritten and the
 648     // cpcache to be created. Class verification is done according
 649     // to -Xverify setting.
 650     _link_classes_made_progress |= try_link_class(ik, THREAD);




 611                         SharedMiscCodeSize,
 612                         true, true);
 613 
 614   // Pass 2 - write data.
 615   mapinfo->open_for_write();
 616   mapinfo->set_header_crc(mapinfo->compute_header_crc());
 617   mapinfo->write_header();
 618   mapinfo->write_space(MetaspaceShared::ro, _loader_data->ro_metaspace(), true);
 619   mapinfo->write_space(MetaspaceShared::rw, _loader_data->rw_metaspace(), false);
 620   mapinfo->write_region(MetaspaceShared::md, _md_vs.low(),
 621                         pointer_delta(md_top, _md_vs.low(), sizeof(char)),
 622                         SharedMiscDataSize,
 623                         false, false);
 624   mapinfo->write_region(MetaspaceShared::mc, _mc_vs.low(),
 625                         pointer_delta(mc_top, _mc_vs.low(), sizeof(char)),
 626                         SharedMiscCodeSize,
 627                         true, true);
 628   mapinfo->close();
 629 
 630   memmove(vtbl_list, saved_vtbl, vtbl_list_size * sizeof(void*));
 631   os::free(saved_vtbl);
 632 
 633   if (PrintSharedSpaces) {
 634     DumpAllocClosure dac;
 635     dac.iterate_metaspace(_loader_data->ro_metaspace(), DumpAllocClosure::RO);
 636     dac.iterate_metaspace(_loader_data->rw_metaspace(), DumpAllocClosure::RW);
 637 
 638     dac.dump_stats(int(ro_bytes), int(rw_bytes), int(md_bytes), int(mc_bytes));
 639   }
 640 #undef fmt_space
 641 }
 642 
 643 
 644 void MetaspaceShared::link_one_shared_class(Klass* obj, TRAPS) {
 645   Klass* k = obj;
 646   if (k->oop_is_instance()) {
 647     InstanceKlass* ik = (InstanceKlass*) k;
 648     // Link the class to cause the bytecodes to be rewritten and the
 649     // cpcache to be created. Class verification is done according
 650     // to -Xverify setting.
 651     _link_classes_made_progress |= try_link_class(ik, THREAD);


< prev index next >