Mercurial > hg > truffle
comparison src/share/vm/memory/metaspaceShared.cpp @ 18096:ca6d25be853b jdk8u25-b13
8044269: Analysis of archive files.
Summary: Add checksum verification.
Reviewed-by: iklam, dholmes, mschoene
author | jiangli |
---|---|
date | Tue, 12 Aug 2014 17:46:16 -0400 |
parents | 78bbf4d43a14 |
children | eaf39a954227 8cb56c8cb30d |
comparison
equal
deleted
inserted
replaced
18095:c49561a5865c | 18096:ca6d25be853b |
---|---|
583 SharedMiscCodeSize, | 583 SharedMiscCodeSize, |
584 true, true); | 584 true, true); |
585 | 585 |
586 // Pass 2 - write data. | 586 // Pass 2 - write data. |
587 mapinfo->open_for_write(); | 587 mapinfo->open_for_write(); |
588 mapinfo->set_header_crc(mapinfo->compute_header_crc()); | |
588 mapinfo->write_header(); | 589 mapinfo->write_header(); |
589 mapinfo->write_space(MetaspaceShared::ro, _loader_data->ro_metaspace(), true); | 590 mapinfo->write_space(MetaspaceShared::ro, _loader_data->ro_metaspace(), true); |
590 mapinfo->write_space(MetaspaceShared::rw, _loader_data->rw_metaspace(), false); | 591 mapinfo->write_space(MetaspaceShared::rw, _loader_data->rw_metaspace(), false); |
591 mapinfo->write_region(MetaspaceShared::md, _md_vs.low(), | 592 mapinfo->write_region(MetaspaceShared::md, _md_vs.low(), |
592 pointer_delta(md_top, _md_vs.low(), sizeof(char)), | 593 pointer_delta(md_top, _md_vs.low(), sizeof(char)), |
861 char* _md_base = NULL; | 862 char* _md_base = NULL; |
862 char* _mc_base = NULL; | 863 char* _mc_base = NULL; |
863 | 864 |
864 // Map each shared region | 865 // Map each shared region |
865 if ((_ro_base = mapinfo->map_region(ro)) != NULL && | 866 if ((_ro_base = mapinfo->map_region(ro)) != NULL && |
867 mapinfo->verify_region_checksum(ro) && | |
866 (_rw_base = mapinfo->map_region(rw)) != NULL && | 868 (_rw_base = mapinfo->map_region(rw)) != NULL && |
869 mapinfo->verify_region_checksum(rw) && | |
867 (_md_base = mapinfo->map_region(md)) != NULL && | 870 (_md_base = mapinfo->map_region(md)) != NULL && |
871 mapinfo->verify_region_checksum(md) && | |
868 (_mc_base = mapinfo->map_region(mc)) != NULL && | 872 (_mc_base = mapinfo->map_region(mc)) != NULL && |
873 mapinfo->verify_region_checksum(mc) && | |
869 (image_alignment == (size_t)max_alignment())) { | 874 (image_alignment == (size_t)max_alignment())) { |
870 // Success (no need to do anything) | 875 // Success (no need to do anything) |
871 return true; | 876 return true; |
872 } else { | 877 } else { |
873 // If there was a failure in mapping any of the spaces, unmap the ones | 878 // If there was a failure in mapping any of the spaces, unmap the ones |