310 char* p = (char*)_shared_path_table->data();
311 p += _shared_path_entry_size * index;
312 return (SharedClassPathEntry*)p;
313 }
314
315 static const char* shared_path_name(int index) {
316 assert(index >= 0, "Sanity");
317 return shared_path(index)->name();
318 }
319
320 static int get_number_of_shared_paths() {
321 return _shared_path_table_size;
322 }
323
324 char* region_addr(int idx);
325
326 private:
327 bool map_heap_data(MemRegion **heap_mem, int first, int max, int* num,
328 bool is_open = false) NOT_CDS_JAVA_HEAP_RETURN_(false);
329 bool verify_mapped_heap_regions(int first, int num) NOT_CDS_JAVA_HEAP_RETURN_(false);
330 void dealloc_archive_heap_regions(MemRegion* regions, int num) NOT_CDS_JAVA_HEAP_RETURN;
331
332 CDSFileMapRegion* space_at(int i) {
333 return _header->space_at(i);
334 }
335
336 narrowOop offset_of_space(CDSFileMapRegion* spc) {
337 return (narrowOop)(spc->_addr._offset);
338 }
339
340 // The starting address of spc, as calculated with CompressedOop::decode_non_null()
341 address start_address_as_decoded_with_current_oop_encoding_mode(CDSFileMapRegion* spc) {
342 return decode_start_address(spc, true);
343 }
344
345 // The starting address of spc, as calculated with HeapShared::decode_from_archive()
346 address start_address_as_decoded_from_archive(CDSFileMapRegion* spc) {
347 return decode_start_address(spc, false);
348 }
349
350 address decode_start_address(CDSFileMapRegion* spc, bool with_current_oop_encoding_mode);
|
310 char* p = (char*)_shared_path_table->data();
311 p += _shared_path_entry_size * index;
312 return (SharedClassPathEntry*)p;
313 }
314
315 static const char* shared_path_name(int index) {
316 assert(index >= 0, "Sanity");
317 return shared_path(index)->name();
318 }
319
320 static int get_number_of_shared_paths() {
321 return _shared_path_table_size;
322 }
323
324 char* region_addr(int idx);
325
326 private:
327 bool map_heap_data(MemRegion **heap_mem, int first, int max, int* num,
328 bool is_open = false) NOT_CDS_JAVA_HEAP_RETURN_(false);
329 bool verify_mapped_heap_regions(int first, int num) NOT_CDS_JAVA_HEAP_RETURN_(false);
330 void dealloc_archive_heap_regions(MemRegion* regions, int num, bool is_open) NOT_CDS_JAVA_HEAP_RETURN;
331
332 CDSFileMapRegion* space_at(int i) {
333 return _header->space_at(i);
334 }
335
336 narrowOop offset_of_space(CDSFileMapRegion* spc) {
337 return (narrowOop)(spc->_addr._offset);
338 }
339
340 // The starting address of spc, as calculated with CompressedOop::decode_non_null()
341 address start_address_as_decoded_with_current_oop_encoding_mode(CDSFileMapRegion* spc) {
342 return decode_start_address(spc, true);
343 }
344
345 // The starting address of spc, as calculated with HeapShared::decode_from_archive()
346 address start_address_as_decoded_from_archive(CDSFileMapRegion* spc) {
347 return decode_start_address(spc, false);
348 }
349
350 address decode_start_address(CDSFileMapRegion* spc, bool with_current_oop_encoding_mode);
|