aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/script_task.rs
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-05-08 23:40:15 +0200
committerJack Moffitt <jack@metajack.im>2014-05-22 16:36:40 -0600
commiteaedeb07cb0c4fdda37f35057588e4a769fbe758 (patch)
treecdeb134482f06818f7d6dbad8e008882fcc336a5 /src/components/script/script_task.rs
parent3644d0272c89336954358eb5005f884a9c89e8bc (diff)
downloadservo-eaedeb07cb0c4fdda37f35057588e4a769fbe758.tar.gz
servo-eaedeb07cb0c4fdda37f35057588e4a769fbe758.zip
Update Rust.
Diffstat (limited to 'src/components/script/script_task.rs')
-rw-r--r--src/components/script/script_task.rs39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs
index 9c50b2f5b5d..05c58db96e6 100644
--- a/src/components/script/script_task.rs
+++ b/src/components/script/script_task.rs
@@ -56,12 +56,11 @@ use servo_util::task::send_on_failure;
use servo_util::namespace::Null;
use std::cast;
use std::cell::{Cell, RefCell, Ref, RefMut};
-use std::comm::{channel, Sender, Receiver, Empty, Disconnected, Data};
-use std::local_data;
+use std::comm::{channel, Sender, Receiver, Empty, Disconnected};
use std::mem::replace;
use std::ptr;
use std::rc::Rc;
-use std::task;
+use std::task::TaskBuilder;
use url::Url;
use serialize::{Encoder, Encodable};
@@ -242,7 +241,7 @@ impl Page {
.find(|&(_idx, ref page_tree)| {
// FIXME: page_tree has a lifetime such that it's unusable for anything.
let page_tree = unsafe {
- cast::transmute_region(page_tree)
+ cast::transmute_lifetime(page_tree)
};
page_tree.id() == id
})
@@ -351,12 +350,12 @@ impl Page {
match join_port {
Some(ref join_port) => {
match join_port.try_recv() {
- Empty => {
+ Err(Empty) => {
info!("script: waiting on layout");
join_port.recv();
}
- Data(_) => {}
- Disconnected => {
+ Ok(_) => {}
+ Err(Disconnected) => {
fail!("Layout task failed while script was waiting for a result.");
}
}
@@ -422,7 +421,7 @@ impl Page {
let window_size = self.window_size.deref().get();
// Send new document and relevant styles to layout.
- let reflow = ~Reflow {
+ let reflow = box Reflow {
document_root: root.to_trusted_node_address(),
url: self.get_url(),
goal: goal,
@@ -525,14 +524,14 @@ struct StackRootTLS;
impl StackRootTLS {
fn new(roots: &RootCollection) -> StackRootTLS {
- local_data::set(StackRoots, roots as *RootCollection);
+ StackRoots.replace(Some(roots as *RootCollection));
StackRootTLS
}
}
impl Drop for StackRootTLS {
fn drop(&mut self) {
- let _ = local_data::pop(StackRoots);
+ let _ = StackRoots.replace(None);
}
}
@@ -557,7 +556,7 @@ pub struct ScriptTask {
/// For communicating load url messages to the constellation
pub constellation_chan: ConstellationChan,
/// A handle to the compositor for communicating ready state messages.
- pub compositor: ~ScriptListener,
+ pub compositor: Box<ScriptListener>,
/// The JavaScript runtime.
pub js_runtime: js::rust::rt,
@@ -606,7 +605,7 @@ impl<'a> Drop for ScriptMemoryFailsafe<'a> {
impl ScriptTask {
/// Creates a new script task.
pub fn new(id: PipelineId,
- compositor: ~ScriptListener,
+ compositor: Box<ScriptListener>,
layout_chan: LayoutChan,
port: Receiver<ScriptMsg>,
chan: ScriptChan,
@@ -686,7 +685,7 @@ impl ScriptTask {
pub fn create<C:ScriptListener + Send>(
id: PipelineId,
- compositor: ~C,
+ compositor: Box<C>,
layout_chan: LayoutChan,
port: Receiver<ScriptMsg>,
chan: ScriptChan,
@@ -695,12 +694,12 @@ impl ScriptTask {
resource_task: ResourceTask,
image_cache_task: ImageCacheTask,
window_size: Size2D<uint>) {
- let mut builder = task::task().named("ScriptTask");
+ let mut builder = TaskBuilder::new().named("ScriptTask");
let ConstellationChan(const_chan) = constellation_chan.clone();
send_on_failure(&mut builder, FailureMsg(failure_msg), const_chan);
builder.spawn(proc() {
let script_task = ScriptTask::new(id,
- compositor as ~ScriptListener,
+ compositor as Box<ScriptListener>,
layout_chan,
port,
chan,
@@ -764,8 +763,8 @@ impl ScriptTask {
}
match self.port.try_recv() {
- Empty | Disconnected => break,
- Data(ev) => event = ev,
+ Err(_) => break,
+ Ok(ev) => event = ev,
}
}
@@ -991,15 +990,15 @@ impl ScriptTask {
let mut js_scripts = None;
loop {
match discovery_port.recv_opt() {
- Some(HtmlDiscoveredScript(scripts)) => {
+ Ok(HtmlDiscoveredScript(scripts)) => {
assert!(js_scripts.is_none());
js_scripts = Some(scripts);
}
- Some(HtmlDiscoveredStyle(sheet)) => {
+ Ok(HtmlDiscoveredStyle(sheet)) => {
let LayoutChan(ref chan) = *page.layout_chan;
chan.send(AddStylesheetMsg(sheet));
}
- None => break
+ Err(()) => break
}
}