about summary refs log tree commit diff
path: root/src/libstd/sync.rs
diff options
context:
space:
mode:
authorBen Blum <bblum@andrew.cmu.edu>2012-08-23 16:51:53 -0400
committerBen Blum <bblum@andrew.cmu.edu>2012-08-25 03:07:30 -0400
commit4cfb92f4598a6571523bce8b72188df559e2a2b3 (patch)
treec1e23c0d351c7b39f885c2a78da9280a2bcae45e /src/libstd/sync.rs
parent8d00603d782ee637fe9130b542fdee0c626b3810 (diff)
downloadrust-4cfb92f4598a6571523bce8b72188df559e2a2b3.tar.gz
rust-4cfb92f4598a6571523bce8b72188df559e2a2b3.zip
Use region variance to remove a bunch of unsafety in sync/arc (#2282)
Diffstat (limited to 'src/libstd/sync.rs')
-rw-r--r--src/libstd/sync.rs12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/libstd/sync.rs b/src/libstd/sync.rs
index bdc25495050..5c8568b29b0 100644
--- a/src/libstd/sync.rs
+++ b/src/libstd/sync.rs
@@ -998,16 +998,12 @@ mod tests {
             write => x.write(blk),
             downgrade =>
                 do x.write_downgrade |mode| {
-                    // FIXME(#2282)
-                    let mode = unsafe { unsafe::transmute_region(&mode) };
-                    mode.write(blk);
+                    (&mode).write(blk);
                 },
             downgrade_read =>
                 do x.write_downgrade |mode| {
                     let mode = x.downgrade(mode);
-                    // FIXME(#2282)
-                    let mode = unsafe { unsafe::transmute_region(&mode) };
-                    mode.read(blk);
+                    (&mode).read(blk);
                 },
         }
     }
@@ -1152,9 +1148,7 @@ mod tests {
         fn lock_cond(x: &rwlock, downgrade: bool, blk: fn(c: &condvar)) {
             if downgrade {
                 do x.write_downgrade |mode| {
-                    // FIXME(#2282)
-                    let mode = unsafe { unsafe::transmute_region(&mode) };
-                    mode.write_cond(blk)
+                    (&mode).write_cond(blk)
                 }
             } else {
                 x.write_cond(blk)