about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-06-26 03:08:04 -0700
committerbors <bors@rust-lang.org>2013-06-26 03:08:04 -0700
commit4ec05e02fa5f64aaef922948ce00d25f42e0478d (patch)
tree7969f5f1140ecb1838d575e2dbfee0b7d99d2c0a /src/libstd
parent09b4525f84ea878962f26bcd22d208b9d87d5560 (diff)
parentb8b2d1e5b41fd3351049fbb54846b42aa9b189bd (diff)
downloadrust-4ec05e02fa5f64aaef922948ce00d25f42e0478d.tar.gz
rust-4ec05e02fa5f64aaef922948ce00d25f42e0478d.zip
auto merge of #7216 : kballard/rust/task_rng, r=brson
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/rand.rs16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/libstd/rand.rs b/src/libstd/rand.rs
index c49e2af2f02..ea4a9059e72 100644
--- a/src/libstd/rand.rs
+++ b/src/libstd/rand.rs
@@ -844,7 +844,7 @@ fn tls_rng_state(_v: @@mut IsaacRng) {}
  * `task_rng().gen::<int>()`.
  */
 #[inline]
-pub fn task_rng() -> @@mut IsaacRng {
+pub fn task_rng() -> @mut IsaacRng {
     let r : Option<@@mut IsaacRng>;
     unsafe {
         r = local_data::local_data_get(tls_rng_state);
@@ -854,20 +854,18 @@ pub fn task_rng() -> @@mut IsaacRng {
             unsafe {
                 let rng = @@mut IsaacRng::new_seeded(seed());
                 local_data::local_data_set(tls_rng_state, rng);
-                rng
+                *rng
             }
         }
-        Some(rng) => rng
+        Some(rng) => *rng
     }
 }
 
 // Allow direct chaining with `task_rng`
-impl<R: Rng> Rng for @@mut R {
+impl<R: Rng> Rng for @mut R {
     #[inline]
     fn next(&mut self) -> u32 {
-        match *self {
-            @@ref mut r => r.next()
-        }
+        (**self).next()
     }
 }
 
@@ -877,9 +875,7 @@ impl<R: Rng> Rng for @@mut R {
  */
 #[inline]
 pub fn random<T: Rand>() -> T {
-    match *task_rng() {
-        @ref mut r => r.gen()
-    }
+    task_rng().gen()
 }
 
 #[cfg(test)]