about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-06-18 14:26:42 +0000
committerbors <bors@rust-lang.org>2014-06-18 14:26:42 +0000
commit78cb2f5bc0244edeb0f7f042c81f16931c437d27 (patch)
tree02b3469125c2d093879dc89298b41349c6c91864 /src/libstd
parent34e3232705539e4506ceb4c19944f7d894413fca (diff)
parentbb0a42745f7a951c298b7bc2e07f7ba1fee14100 (diff)
downloadrust-78cb2f5bc0244edeb0f7f042c81f16931c437d27.tar.gz
rust-78cb2f5bc0244edeb0f7f042c81f16931c437d27.zip
auto merge of #14984 : thestinger/rust/libc, r=alexcrichton
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/os.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/libstd/os.rs b/src/libstd/os.rs
index dfbf61cc890..4d58d4674bf 100644
--- a/src/libstd/os.rs
+++ b/src/libstd/os.rs
@@ -1338,7 +1338,6 @@ impl MemoryMap {
     /// `ErrZeroLength`.
     pub fn new(min_len: uint, options: &[MapOption]) -> Result<MemoryMap, MapError> {
         use libc::off_t;
-        use cmp::Equiv;
 
         if min_len == 0 {
             return Err(ErrZeroLength)
@@ -1371,10 +1370,10 @@ impl MemoryMap {
         if fd == -1 && !custom_flags { flags |= libc::MAP_ANON; }
 
         let r = unsafe {
-            libc::mmap(addr as *c_void, len as libc::size_t, prot, flags, fd,
-                       offset)
+            libc::mmap(addr as *mut c_void, len as libc::size_t, prot, flags,
+                       fd, offset)
         };
-        if r.equiv(&libc::MAP_FAILED) {
+        if r == libc::MAP_FAILED {
             Err(match errno() as c_int {
                 libc::EACCES => ErrFdNotAvail,
                 libc::EBADF => ErrInvalidFd,
@@ -1410,8 +1409,8 @@ impl Drop for MemoryMap {
         if self.len == 0 { /* workaround for dummy_stack */ return; }
 
         unsafe {
-            // FIXME: what to do if this fails?
-            let _ = libc::munmap(self.data as *c_void, self.len as libc::size_t);
+            // `munmap` only fails due to logic errors
+            libc::munmap(self.data as *mut c_void, self.len as libc::size_t);
         }
     }
 }