137 static GrowableArrayCHeap<OopHandle, mtClassShared>* _root_segments;
138 static int _root_segment_max_size_elems;
139
140 static MemRegion _mapped_heap_memregion;
141 static bool _heap_pointers_need_patching;
142
143 static void init_narrow_oop_decoding(address base, int shift);
144 static bool init_loaded_region(FileMapInfo* mapinfo, AOTMappedHeapRegion* loaded_region,
145 MemRegion& archive_space);
146 static bool load_heap_region_impl(FileMapInfo* mapinfo, AOTMappedHeapRegion* loaded_region, uintptr_t buffer);
147 static void init_loaded_heap_relocation(AOTMappedHeapRegion* reloc_info);
148 static void patch_native_pointers();
149 static void finish_loaded_heap();
150 static void verify_loaded_heap();
151 static void fill_failed_loaded_heap();
152
153 static bool is_in_loaded_heap(uintptr_t o) {
154 return (_loaded_heap_bottom <= o && o < _loaded_heap_top);
155 }
156
157 static objArrayOop root_segment(int segment_idx);
158 static void get_segment_indexes(int idx, int& seg_idx, int& int_idx);
159 static void add_root_segment(objArrayOop segment_oop);
160 static void init_root_segment_sizes(int max_size_elems);
161
162 template<bool IS_MAPPED>
163 inline static oop decode_from_archive_impl(narrowOop v) NOT_CDS_JAVA_HEAP_RETURN_(nullptr);
164
165 class PatchLoadedRegionPointers;
166 class PatchUncompressedLoadedRegionPointers;
167
168 static address heap_region_dumptime_address(FileMapInfo* info);
169 static address heap_region_requested_address(FileMapInfo* info);
170 static bool map_heap_region_impl(FileMapInfo* info);
171 static narrowOop encoded_heap_region_dumptime_address(FileMapInfo* info);
172 static void patch_heap_embedded_pointers(FileMapInfo* info);
173 static void fixup_mapped_heap_region(FileMapInfo* info);
174 static void dealloc_heap_region(FileMapInfo* info);
175
176 public:
177
178 static bool map_heap_region(FileMapInfo* info);
179 static bool load_heap_region(FileMapInfo* mapinfo);
|
137 static GrowableArrayCHeap<OopHandle, mtClassShared>* _root_segments;
138 static int _root_segment_max_size_elems;
139
140 static MemRegion _mapped_heap_memregion;
141 static bool _heap_pointers_need_patching;
142
143 static void init_narrow_oop_decoding(address base, int shift);
144 static bool init_loaded_region(FileMapInfo* mapinfo, AOTMappedHeapRegion* loaded_region,
145 MemRegion& archive_space);
146 static bool load_heap_region_impl(FileMapInfo* mapinfo, AOTMappedHeapRegion* loaded_region, uintptr_t buffer);
147 static void init_loaded_heap_relocation(AOTMappedHeapRegion* reloc_info);
148 static void patch_native_pointers();
149 static void finish_loaded_heap();
150 static void verify_loaded_heap();
151 static void fill_failed_loaded_heap();
152
153 static bool is_in_loaded_heap(uintptr_t o) {
154 return (_loaded_heap_bottom <= o && o < _loaded_heap_top);
155 }
156
157 static refArrayOop root_segment(int segment_idx);
158 static void get_segment_indexes(int idx, int& seg_idx, int& int_idx);
159 static void add_root_segment(refArrayOop segment_oop);
160 static void init_root_segment_sizes(int max_size_elems);
161
162 template<bool IS_MAPPED>
163 inline static oop decode_from_archive_impl(narrowOop v) NOT_CDS_JAVA_HEAP_RETURN_(nullptr);
164
165 class PatchLoadedRegionPointers;
166 class PatchUncompressedLoadedRegionPointers;
167
168 static address heap_region_dumptime_address(FileMapInfo* info);
169 static address heap_region_requested_address(FileMapInfo* info);
170 static bool map_heap_region_impl(FileMapInfo* info);
171 static narrowOop encoded_heap_region_dumptime_address(FileMapInfo* info);
172 static void patch_heap_embedded_pointers(FileMapInfo* info);
173 static void fixup_mapped_heap_region(FileMapInfo* info);
174 static void dealloc_heap_region(FileMapInfo* info);
175
176 public:
177
178 static bool map_heap_region(FileMapInfo* info);
179 static bool load_heap_region(FileMapInfo* mapinfo);
|