about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
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)
+            }
+        }
     }
 }