63 // Entry fields for shareable subgraphs archived in the closed archive heap
64 // region. Warning: Objects in the subgraphs should not have reference fields
65 // assigned at runtime.
66 static ArchivableStaticFieldInfo closed_archive_subgraph_entry_fields[] = {
67 {"java/lang/Integer$IntegerCache", "archivedCache"},
68 {"java/lang/Long$LongCache", "archivedCache"},
69 {"java/lang/Byte$ByteCache", "archivedCache"},
70 {"java/lang/Short$ShortCache", "archivedCache"},
71 {"java/lang/Character$CharacterCache", "archivedCache"},
72 {"java/util/jar/Attributes$Name", "KNOWN_NAMES"},
73 {"sun/util/locale/BaseLocale", "constantBaseLocales"},
74 };
75 // Entry fields for subgraphs archived in the open archive heap region.
76 static ArchivableStaticFieldInfo open_archive_subgraph_entry_fields[] = {
77 {"jdk/internal/module/ArchivedModuleGraph", "archivedModuleGraph"},
78 {"java/util/ImmutableCollections$ListN", "EMPTY_LIST"},
79 {"java/util/ImmutableCollections$MapN", "EMPTY_MAP"},
80 {"java/util/ImmutableCollections$SetN", "EMPTY_SET"},
81 {"java/lang/module/Configuration", "EMPTY_CONFIGURATION"},
82 {"jdk/internal/math/FDBigInteger", "archivedCaches"},
83 };
84
85 const static int num_closed_archive_subgraph_entry_fields =
86 sizeof(closed_archive_subgraph_entry_fields) / sizeof(ArchivableStaticFieldInfo);
87 const static int num_open_archive_subgraph_entry_fields =
88 sizeof(open_archive_subgraph_entry_fields) / sizeof(ArchivableStaticFieldInfo);
89
90 ////////////////////////////////////////////////////////////////
91 //
92 // Java heap object archiving support
93 //
94 ////////////////////////////////////////////////////////////////
95 void HeapShared::fixup_mapped_heap_regions() {
96 FileMapInfo *mapinfo = FileMapInfo::current_info();
97 mapinfo->fixup_mapped_heap_regions();
98 set_archive_heap_region_fixed();
99 }
100
101 unsigned HeapShared::oop_hash(oop const& p) {
102 assert(!p->mark()->has_bias_pattern(),
|
63 // Entry fields for shareable subgraphs archived in the closed archive heap
64 // region. Warning: Objects in the subgraphs should not have reference fields
65 // assigned at runtime.
66 static ArchivableStaticFieldInfo closed_archive_subgraph_entry_fields[] = {
67 {"java/lang/Integer$IntegerCache", "archivedCache"},
68 {"java/lang/Long$LongCache", "archivedCache"},
69 {"java/lang/Byte$ByteCache", "archivedCache"},
70 {"java/lang/Short$ShortCache", "archivedCache"},
71 {"java/lang/Character$CharacterCache", "archivedCache"},
72 {"java/util/jar/Attributes$Name", "KNOWN_NAMES"},
73 {"sun/util/locale/BaseLocale", "constantBaseLocales"},
74 };
75 // Entry fields for subgraphs archived in the open archive heap region.
76 static ArchivableStaticFieldInfo open_archive_subgraph_entry_fields[] = {
77 {"jdk/internal/module/ArchivedModuleGraph", "archivedModuleGraph"},
78 {"java/util/ImmutableCollections$ListN", "EMPTY_LIST"},
79 {"java/util/ImmutableCollections$MapN", "EMPTY_MAP"},
80 {"java/util/ImmutableCollections$SetN", "EMPTY_SET"},
81 {"java/lang/module/Configuration", "EMPTY_CONFIGURATION"},
82 {"jdk/internal/math/FDBigInteger", "archivedCaches"},
83 {"java/math/BigInteger", "archivedCaches"},
84 };
85
86 const static int num_closed_archive_subgraph_entry_fields =
87 sizeof(closed_archive_subgraph_entry_fields) / sizeof(ArchivableStaticFieldInfo);
88 const static int num_open_archive_subgraph_entry_fields =
89 sizeof(open_archive_subgraph_entry_fields) / sizeof(ArchivableStaticFieldInfo);
90
91 ////////////////////////////////////////////////////////////////
92 //
93 // Java heap object archiving support
94 //
95 ////////////////////////////////////////////////////////////////
96 void HeapShared::fixup_mapped_heap_regions() {
97 FileMapInfo *mapinfo = FileMapInfo::current_info();
98 mapinfo->fixup_mapped_heap_regions();
99 set_archive_heap_region_fixed();
100 }
101
102 unsigned HeapShared::oop_hash(oop const& p) {
103 assert(!p->mark()->has_bias_pattern(),
|