summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_data_structures/src/memmap.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_data_structures/src/memmap.rs')
-rw-r--r--compiler/rustc_data_structures/src/memmap.rs7
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 ca908671a..30403a614 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) }
}
}