diff options
| author | Ralf Jung <post@ralfj.de> | 2023-08-19 12:49:07 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2023-08-19 12:50:26 +0200 |
| commit | 132a2c6cf29649d0b57f3efe9fe72beef8fc7c9e (patch) | |
| tree | d44a63721d075e9876dd411182eef6cd12755045 /compiler/rustc_data_structures/src | |
| parent | d06ca0ffaf4ac72732665f99dd9ad962194cd0b3 (diff) | |
| download | rust-132a2c6cf29649d0b57f3efe9fe72beef8fc7c9e.tar.gz rust-132a2c6cf29649d0b57f3efe9fe72beef8fc7c9e.zip | |
elaborate a bit on the (lack of) safety in 'Mmap::map'
Diffstat (limited to 'compiler/rustc_data_structures/src')
| -rw-r--r-- | compiler/rustc_data_structures/src/memmap.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_data_structures/src/memmap.rs b/compiler/rustc_data_structures/src/memmap.rs index ca908671ae5..30403a61442 100644 --- a/compiler/rustc_data_structures/src/memmap.rs +++ b/compiler/rustc_data_structures/src/memmap.rs @@ -11,9 +11,14 @@ pub struct Mmap(Vec<u8>); #[cfg(not(target_arch = "wasm32"))] impl Mmap { + /// # Safety + /// + /// The given file must not be mutated (i.e., not written, not truncated, ...) until the mapping is closed. + /// + /// However in practice most callers do not ensure this, so uses of this function are likely unsound. #[inline] pub unsafe fn map(file: File) -> io::Result<Self> { - // Safety: this is in fact not safe. + // Safety: the caller must ensure that this is safe. unsafe { memmap2::Mmap::map(&file).map(Mmap) } } } |
