Update to latest Rust.

This commit is contained in:
Jack Moffitt 2013-10-14 23:11:35 -06:00
parent 8b47221ff8
commit 94202661c0
100 changed files with 439 additions and 379 deletions

View file

@ -10,7 +10,7 @@ use std::comm::Port;
use std::task;
use newcss::stylesheet::Stylesheet;
use newcss::util::DataStream;
use servo_net::resource_task::{Load, LoadResponse, Payload, Done, ResourceTask};
use servo_net::resource_task::{Load, LoadResponse, Payload, Done, ResourceTask, ProgressMsg};
use extra::url::Url;
/// Where a style sheet comes from.
@ -41,7 +41,7 @@ pub fn spawn_css_parser(provenance: StylesheetProvenance,
return result_port;
}
fn data_stream(provenance: StylesheetProvenance, resource_task: ResourceTask) -> DataStream {
fn data_stream(provenance: StylesheetProvenance, resource_task: ResourceTask) -> @mut DataStream {
match provenance {
UrlProvenance(url) => {
debug!("cssparse: loading style sheet at %s", url.to_str());
@ -55,26 +55,44 @@ fn data_stream(provenance: StylesheetProvenance, resource_task: ResourceTask) ->
}
}
fn resource_port_to_data_stream(input_port: Port<LoadResponse>) -> DataStream {
fn resource_port_to_data_stream(input_port: Port<LoadResponse>) -> @mut DataStream {
let progress_port = input_port.recv().progress_port;
return || {
match progress_port.recv() {
Payload(data) => Some(data),
Done(*) => None
struct ResourcePortDataStream {
progress_port: Port<ProgressMsg>,
};
impl DataStream for ResourcePortDataStream {
fn read(&mut self) -> Option<~[u8]> {
match self.progress_port.recv() {
Payload(data) => Some(data),
Done(*) => None
}
}
}
let stream = @mut ResourcePortDataStream {
progress_port: progress_port,
};
stream as @mut DataStream
}
fn data_to_data_stream(data: ~str) -> DataStream {
fn data_to_data_stream(data: ~str) -> @mut DataStream {
let data_cell = Cell::new(data);
return || {
if data_cell.is_empty() {
None
} else {
// FIXME: Blech, a copy.
let data = data_cell.take();
Some(data.as_bytes().to_owned())
struct DataDataStream {
data_cell: Cell<~str>,
};
impl DataStream for DataDataStream {
fn read(&mut self) -> Option<~[u8]> {
if self.data_cell.is_empty() {
None
} else {
// FIXME: Blech, a copy.
let data = self.data_cell.take();
Some(data.as_bytes().to_owned())
}
}
}
let stream = @mut DataDataStream {
data_cell: data_cell,
};
stream as @mut DataStream
}

View file

@ -29,7 +29,7 @@ use servo_net::resource_task::{Load, Payload, Done, ResourceTask, load_whole_res
use servo_util::tree::{TreeNodeRef, ElementLike};
use servo_util::url::make_url;
use extra::url::Url;
use extra::future::{Future, from_port};
use extra::future::Future;
use geom::size::Size2D;
macro_rules! handle_element(
@ -431,7 +431,7 @@ pub fn parse_html(cx: *JSContext,
// Size future
let (port, chan) = comm::oneshot();
let size_future = from_port(port);
let size_future = Future::from_port(port);
// Subpage Id
let subpage_id = next_subpage_id.take();