about summary refs log tree commit diff
path: root/src/libstd/rc.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-05-09 14:14:42 -0700
committerPatrick Walton <pcwalton@mimiga.net>2013-05-12 16:33:15 -0700
commit06ef889cdc77db862d526bf6a607ecdf3ee80beb (patch)
tree12ef3b970735baece127e674d7feb82bd6a5d9da /src/libstd/rc.rs
parent830b945a9db072b68970b6f83dfafc1aaff8f837 (diff)
downloadrust-06ef889cdc77db862d526bf6a607ecdf3ee80beb.tar.gz
rust-06ef889cdc77db862d526bf6a607ecdf3ee80beb.zip
libsyntax: Remove `extern mod foo { ... }` from the language.
Diffstat (limited to 'src/libstd/rc.rs')
-rw-r--r--src/libstd/rc.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libstd/rc.rs b/src/libstd/rc.rs
index 0c0f11fc9f0..8cf2da3a1e8 100644
--- a/src/libstd/rc.rs
+++ b/src/libstd/rc.rs
@@ -110,6 +110,13 @@ mod test_rc {
     }
 }
 
+#[abi = "rust-intrinsic"]
+extern "rust-intrinsic" {
+    fn init<T>() -> T;
+    #[cfg(not(stage0))]
+    fn uninit<T>() -> T;
+}
+
 #[deriving(Eq)]
 enum Borrow {
     Mutable,
@@ -171,7 +178,7 @@ impl<T: Owned> Drop for RcMut<T> {
         unsafe {
             (*self.ptr).count -= 1;
             if (*self.ptr).count == 0 {
-                util::replace_ptr(self.ptr, intrinsics::uninit());
+                util::replace_ptr(self.ptr, uninit());
                 free(self.ptr as *c_void)
             }
         }
@@ -185,7 +192,7 @@ impl<T: Owned> Drop for RcMut<T> {
         unsafe {
             (*self.ptr).count -= 1;
             if (*self.ptr).count == 0 {
-                util::replace_ptr(self.ptr, intrinsics::init());
+                util::replace_ptr(self.ptr, init());
                 free(self.ptr as *c_void)
             }
         }