about summary refs log tree commit diff
path: root/src/libgreen
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2014-06-24 23:11:57 -0700
committerPatrick Walton <pcwalton@mimiga.net>2014-06-24 23:14:42 -0700
commitf6bfd2c65ba2a1292be1e62dd1c61a70abccdd1a (patch)
treeefdda7183699eaa7975d895e34bb6269c5f20323 /src/libgreen
parent7a93beef7f692b34168ad69633f56483d38ad8fc (diff)
downloadrust-f6bfd2c65ba2a1292be1e62dd1c61a70abccdd1a.tar.gz
rust-f6bfd2c65ba2a1292be1e62dd1c61a70abccdd1a.zip
librustc: Remove cross borrowing from mutable `Box`es to `&mut`.
This will break code like:

    fn f(x: &mut int) {}

    let mut a = box 1i;
    f(a);

Change it to:

    fn f(x: &mut int) {}

    let mut a = box 1i;
    f(&mut *a);

RFC 33; issue #10504.

[breaking-change]
Diffstat (limited to 'src/libgreen')
-rw-r--r--src/libgreen/sched.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libgreen/sched.rs b/src/libgreen/sched.rs
index 0402a93e468..f8272e5f237 100644
--- a/src/libgreen/sched.rs
+++ b/src/libgreen/sched.rs
@@ -641,7 +641,7 @@ impl Scheduler {
             };
 
             let (current_task_context, next_task_context) =
-                Scheduler::get_contexts(current_task, next_task);
+                Scheduler::get_contexts(current_task, &mut *next_task);
 
             // Done with everything - put the next task in TLS. This
             // works because due to transmute the borrow checker