< prev index next >

src/hotspot/share/classfile/packageEntry.cpp

Print this page


 228   Array<ModuleEntry*>* archived_qualified_exports = ModuleEntry::write_archived_entry_array(_qualified_exports);
 229 
 230   set_next(NULL);
 231   set_literal(MetaspaceShared::get_relocated_symbol(literal()));
 232   set_hash(0x0);  // re-init at runtime
 233   _module = ModuleEntry::get_archived_entry(_module);
 234   _qualified_exports = (GrowableArray<ModuleEntry*>*)archived_qualified_exports;
 235   _defined_by_cds_in_class_path = 0;
 236 
 237   ArchivePtrMarker::mark_pointer((address*)literal_addr());
 238   ArchivePtrMarker::mark_pointer((address*)&_module);
 239   ArchivePtrMarker::mark_pointer((address*)&_qualified_exports);
 240 }
 241 
 242 void PackageEntry::load_from_archive() {
 243   _qualified_exports = ModuleEntry::read_archived_entry_array((Array<ModuleEntry*>*)_qualified_exports);
 244   JFR_ONLY(INIT_ID(this);)
 245 }
 246 
 247 static int compare_package_by_name(PackageEntry* a, PackageEntry* b) {

 248   return a->name()->fast_compare(b->name());
 249 }
 250 
 251 Array<PackageEntry*>* PackageEntryTable::allocate_archived_entries() {
 252   // First count the packages in named modules
 253   int n, i;
 254   for (n = 0, i = 0; i < table_size(); ++i) {
 255     for (PackageEntry* p = bucket(i); p != NULL; p = p->next()) {
 256       if (p->module()->name() != NULL) {
 257         n++;
 258       }
 259     }
 260   }
 261 
 262   Array<PackageEntry*>* archived_packages = MetaspaceShared::new_rw_array<PackageEntry*>(n);
 263   for (n = 0, i = 0; i < table_size(); ++i) {
 264     for (PackageEntry* p = bucket(i); p != NULL; p = p->next()) {
 265       if (p->module()->name() != NULL) {
 266         // We don't archive unnamed modules, or packages in unnamed modules. They will be
 267         // created on-demand at runtime as classes in such packages are loaded.




 228   Array<ModuleEntry*>* archived_qualified_exports = ModuleEntry::write_archived_entry_array(_qualified_exports);
 229 
 230   set_next(NULL);
 231   set_literal(MetaspaceShared::get_relocated_symbol(literal()));
 232   set_hash(0x0);  // re-init at runtime
 233   _module = ModuleEntry::get_archived_entry(_module);
 234   _qualified_exports = (GrowableArray<ModuleEntry*>*)archived_qualified_exports;
 235   _defined_by_cds_in_class_path = 0;
 236 
 237   ArchivePtrMarker::mark_pointer((address*)literal_addr());
 238   ArchivePtrMarker::mark_pointer((address*)&_module);
 239   ArchivePtrMarker::mark_pointer((address*)&_qualified_exports);
 240 }
 241 
 242 void PackageEntry::load_from_archive() {
 243   _qualified_exports = ModuleEntry::read_archived_entry_array((Array<ModuleEntry*>*)_qualified_exports);
 244   JFR_ONLY(INIT_ID(this);)
 245 }
 246 
 247 static int compare_package_by_name(PackageEntry* a, PackageEntry* b) {
 248   assert(a == b || a->name() != b->name(), "no duplicated names");
 249   return a->name()->fast_compare(b->name());
 250 }
 251 
 252 Array<PackageEntry*>* PackageEntryTable::allocate_archived_entries() {
 253   // First count the packages in named modules
 254   int n, i;
 255   for (n = 0, i = 0; i < table_size(); ++i) {
 256     for (PackageEntry* p = bucket(i); p != NULL; p = p->next()) {
 257       if (p->module()->name() != NULL) {
 258         n++;
 259       }
 260     }
 261   }
 262 
 263   Array<PackageEntry*>* archived_packages = MetaspaceShared::new_rw_array<PackageEntry*>(n);
 264   for (n = 0, i = 0; i < table_size(); ++i) {
 265     for (PackageEntry* p = bucket(i); p != NULL; p = p->next()) {
 266       if (p->module()->name() != NULL) {
 267         // We don't archive unnamed modules, or packages in unnamed modules. They will be
 268         // created on-demand at runtime as classes in such packages are loaded.


< prev index next >