diff options
| author | Ben Kimock <kimockb@gmail.com> | 2024-05-21 20:12:07 -0400 |
|---|---|---|
| committer | Ben Kimock <kimockb@gmail.com> | 2024-05-21 20:12:30 -0400 |
| commit | c3a606237d9c01e4622b267031596bf632567e6f (patch) | |
| tree | fdcf8485698540fe24cc40d645b96c21561797a5 /compiler/rustc_middle/src/query | |
| parent | 95150d72465db491f4b04b73545e106462bd003b (diff) | |
| download | rust-c3a606237d9c01e4622b267031596bf632567e6f.tar.gz rust-c3a606237d9c01e4622b267031596bf632567e6f.zip | |
PR feedback
Diffstat (limited to 'compiler/rustc_middle/src/query')
| -rw-r--r-- | compiler/rustc_middle/src/query/on_disk_cache.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/rustc_middle/src/query/on_disk_cache.rs b/compiler/rustc_middle/src/query/on_disk_cache.rs index 6815e4263d5..941911c2230 100644 --- a/compiler/rustc_middle/src/query/on_disk_cache.rs +++ b/compiler/rustc_middle/src/query/on_disk_cache.rs @@ -154,7 +154,10 @@ impl EncodedSourceFileId { impl<'sess> OnDiskCache<'sess> { /// Creates a new `OnDiskCache` instance from the serialized data in `data`. - pub fn new(sess: &'sess Session, data: Mmap, start_pos: usize) -> Option<Self> { + /// + /// The serialized cache has some basic integrity checks, if those checks indicate that the + /// on-disk data is corrupt, an error is returned. + pub fn new(sess: &'sess Session, data: Mmap, start_pos: usize) -> Result<Self, ()> { assert!(sess.opts.incremental.is_some()); let mut decoder = MemDecoder::new(&data, start_pos)?; @@ -169,7 +172,7 @@ impl<'sess> OnDiskCache<'sess> { let footer: Footer = decoder.with_position(footer_pos, |decoder| decode_tagged(decoder, TAG_FILE_FOOTER)); - Some(Self { + Ok(Self { serialized_data: RwLock::new(Some(data)), file_index_to_stable_id: footer.file_index_to_stable_id, file_index_to_file: Default::default(), |
