< prev index next >

src/hotspot/share/classfile/packageEntry.cpp

Print this page

234   assert(_archived_packages_entries->get(this) == nullptr, "Each PackageEntry must not be shared across PackageEntryTables");
235   _archived_packages_entries->put(this, archived_entry);
236 
237   return archived_entry;
238 }
239 
240 PackageEntry* PackageEntry::get_archived_entry(PackageEntry* orig_entry) {
241   PackageEntry** ptr = _archived_packages_entries->get(orig_entry);
242   if (ptr != nullptr) {
243     return *ptr;
244   } else {
245     return nullptr;
246   }
247 }
248 
249 void PackageEntry::iterate_symbols(MetaspaceClosure* closure) {
250   closure->push(&_name);
251 }
252 
253 void PackageEntry::init_as_archived_entry() {
254   Array<ModuleEntry*>* archived_qualified_exports = ModuleEntry::write_growable_array(_qualified_exports);
255 
256   _name = ArchiveBuilder::get_buffered_symbol(_name);
257   _module = ModuleEntry::get_archived_entry(_module);
258   _qualified_exports = (GrowableArray<ModuleEntry*>*)archived_qualified_exports;
259   _defined_by_cds_in_class_path = 0;
260   JFR_ONLY(set_trace_id(0);) // re-init at runtime
261 
262   ArchivePtrMarker::mark_pointer((address*)&_name);
263   ArchivePtrMarker::mark_pointer((address*)&_module);
264   ArchivePtrMarker::mark_pointer((address*)&_qualified_exports);
265 
266   LogStreamHandle(Info, aot, package) st;
267   if (st.is_enabled()) {
268     st.print("archived ");
269     print(&st);
270   }
271 }
272 
273 void PackageEntry::load_from_archive() {
274   _qualified_exports = ModuleEntry::restore_growable_array((Array<ModuleEntry*>*)_qualified_exports);

234   assert(_archived_packages_entries->get(this) == nullptr, "Each PackageEntry must not be shared across PackageEntryTables");
235   _archived_packages_entries->put(this, archived_entry);
236 
237   return archived_entry;
238 }
239 
240 PackageEntry* PackageEntry::get_archived_entry(PackageEntry* orig_entry) {
241   PackageEntry** ptr = _archived_packages_entries->get(orig_entry);
242   if (ptr != nullptr) {
243     return *ptr;
244   } else {
245     return nullptr;
246   }
247 }
248 
249 void PackageEntry::iterate_symbols(MetaspaceClosure* closure) {
250   closure->push(&_name);
251 }
252 
253 void PackageEntry::init_as_archived_entry() {
254   Array<ModuleEntry*>* archived_qualified_exports = ModuleEntry::write_growable_array(module(), _qualified_exports);
255 
256   _name = ArchiveBuilder::get_buffered_symbol(_name);
257   _module = ModuleEntry::get_archived_entry(_module);
258   _qualified_exports = (GrowableArray<ModuleEntry*>*)archived_qualified_exports;
259   _defined_by_cds_in_class_path = 0;
260   JFR_ONLY(set_trace_id(0);) // re-init at runtime
261 
262   ArchivePtrMarker::mark_pointer((address*)&_name);
263   ArchivePtrMarker::mark_pointer((address*)&_module);
264   ArchivePtrMarker::mark_pointer((address*)&_qualified_exports);
265 
266   LogStreamHandle(Info, aot, package) st;
267   if (st.is_enabled()) {
268     st.print("archived ");
269     print(&st);
270   }
271 }
272 
273 void PackageEntry::load_from_archive() {
274   _qualified_exports = ModuleEntry::restore_growable_array((Array<ModuleEntry*>*)_qualified_exports);
< prev index next >