about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-01-23 16:29:31 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-01-24 13:52:21 -0800
commit163b97b7bb53b7a9753b5fbd9b28dc1e09337259 (patch)
tree9c91b82c62661d4f1e45638a17cdc93d672dd6be /src/libstd
parente43cff6657b5ba4245480ede5230e3f00aa52185 (diff)
downloadrust-163b97b7bb53b7a9753b5fbd9b28dc1e09337259.tar.gz
rust-163b97b7bb53b7a9753b5fbd9b28dc1e09337259.zip
librustc: Make C functions unsafe
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/arena.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/libstd/arena.rs b/src/libstd/arena.rs
index a669adc6dc8..7ac11ecc5cc 100644
--- a/src/libstd/arena.rs
+++ b/src/libstd/arena.rs
@@ -254,9 +254,13 @@ impl &Arena {
     // The external interface
     #[inline(always)]
     fn alloc<T>(op: fn() -> T) -> &self/T {
-        if !rusti::needs_drop::<T>() {
-            self.alloc_pod(op)
-        } else { self.alloc_nonpod(op) }
+        unsafe {
+            if !rusti::needs_drop::<T>() {
+                self.alloc_pod(op)
+            } else {
+                self.alloc_nonpod(op)
+            }
+        }
     }
 }