aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
m---------src/rust0
m---------src/rust-freetype0
m---------src/rust-geom0
m---------src/rust-http-client0
m---------src/rust-mozjs0
-rw-r--r--src/servo-gfx/compositor.rs4
-rw-r--r--src/servo-gfx/font_context.rs5
-rw-r--r--src/servo-gfx/fontconfig/font_list.rs7
-rw-r--r--src/servo-gfx/freetype_impl/font_context.rs2
-rw-r--r--src/servo-gfx/render_layers.rs4
-rw-r--r--src/servo-gfx/render_task.rs16
-rw-r--r--src/servo-gfx/resource/file_loader.rs2
-rw-r--r--src/servo-gfx/resource/http_loader.rs2
-rw-r--r--src/servo-gfx/resource/image_cache_task.rs2
-rw-r--r--src/servo-gfx/resource/local_image_cache.rs14
-rw-r--r--src/servo-gfx/resource/resource_task.rs6
-rw-r--r--src/servo-gfx/resource/util.rs7
-rw-r--r--src/servo-gfx/util/cache.rs4
-rw-r--r--src/servo-gfx/util/vec.rs8
-rw-r--r--src/servo/content/content_task.rs29
-rw-r--r--src/servo/dom/bindings/document.rs17
-rw-r--r--src/servo/dom/bindings/element.rs29
-rw-r--r--src/servo/dom/bindings/node.rs31
-rw-r--r--src/servo/dom/cow.rs17
-rw-r--r--src/servo/dom/event.rs2
-rw-r--r--src/servo/dom/node.rs12
-rw-r--r--src/servo/dom/window.rs4
-rw-r--r--src/servo/engine.rs8
-rw-r--r--src/servo/html/cssparse.rs8
-rw-r--r--src/servo/html/hubbub_html_parser.rs8
-rw-r--r--src/servo/layout/aux.rs4
-rw-r--r--src/servo/layout/inline.rs9
-rw-r--r--src/servo/layout/layout_task.rs8
-rw-r--r--src/servo/platform/osmain.rs20
-rw-r--r--src/servo/platform/resize_rate_limiter.rs8
-rwxr-xr-xsrc/servo/servo.rc16
-rw-r--r--src/servo/util/task.rs9
-rw-r--r--src/servo/util/tree.rs16
38 files changed, 181 insertions, 157 deletions
diff --git a/src/rust b/src/rust
-Subproject a782efc4f16fed52f1f82af5869bfb5285bbc3f
+Subproject b26d434ad126c1ee35ca63c02ff3d9a243e3a00
diff --git a/src/rust-freetype b/src/rust-freetype
-Subproject 29e5fa637965d7ce2c1b9b1347d8fe6054a7124
+Subproject ebfb866ff36203de9f76a852be986ac5df89548
diff --git a/src/rust-geom b/src/rust-geom
-Subproject 7fd0efc2e7dbfdc6e7db79537ac13b2c752a228
+Subproject 5a9e5a84a2b4061fc7f72b5d50e47272da910ae
diff --git a/src/rust-http-client b/src/rust-http-client
-Subproject 90612c9e26dc024429212b79e50d99a19c3476c
+Subproject 2de7e3f2c404d3691212cac40a73986f4e65743
diff --git a/src/rust-mozjs b/src/rust-mozjs
-Subproject 474721fb86731c37f8c56a8dee28f96f22fe30b
+Subproject 677c6cec147ffb33abf8e8a25aa589dd03a8665
diff --git a/src/servo-gfx/compositor.rs b/src/servo-gfx/compositor.rs
index f3820719f5d..98a6758c329 100644
--- a/src/servo-gfx/compositor.rs
+++ b/src/servo-gfx/compositor.rs
@@ -22,7 +22,7 @@ The interface used to by the renderer to aquire draw targets for
each rendered frame and submit them to be drawn to the display
*/
pub trait Compositor {
- fn begin_drawing(next_dt: pipes::Chan<LayerBufferSet>);
- fn draw(next_dt: pipes::Chan<LayerBufferSet>, +draw_me: LayerBufferSet);
+ fn begin_drawing(next_dt: comm::Chan<LayerBufferSet>);
+ fn draw(next_dt: comm::Chan<LayerBufferSet>, +draw_me: LayerBufferSet);
}
diff --git a/src/servo-gfx/font_context.rs b/src/servo-gfx/font_context.rs
index 9c0f935787f..9ddf66a2bd3 100644
--- a/src/servo-gfx/font_context.rs
+++ b/src/servo-gfx/font_context.rs
@@ -188,7 +188,10 @@ pub impl FontContext {
let result_handle = self.handle.create_font_from_identifier(copy *identifier,
copy desc.style);
result::chain(result_handle, |handle| {
- Ok(Font::new_from_adopted_handle(&self, handle, &desc.style, self.backend))
+ Ok(Font::new_from_adopted_handle(&self,
+ handle,
+ &desc.style,
+ self.backend))
})
}
};
diff --git a/src/servo-gfx/fontconfig/font_list.rs b/src/servo-gfx/fontconfig/font_list.rs
index 97562ffea65..54ecc3cd158 100644
--- a/src/servo-gfx/fontconfig/font_list.rs
+++ b/src/servo-gfx/fontconfig/font_list.rs
@@ -4,8 +4,9 @@ extern mod fontconfig;
use fc = fontconfig;
use ft = freetype;
-use gfx_font::FontHandle;
+use gfx_font::{FontHandle, FontHandleMethods};
use gfx_font_list::{FontEntry, FontFamily, FontFamilyMap};
+use gfx_font_context::FontContextHandleMethods;
use freetype_impl::font_context::FreeTypeFontContextHandle;
use freetype_impl::font::FreeTypeFontHandle;
use self::fontconfig::fontconfig::{FcConfig, FcFontSet, FcChar8,
@@ -90,7 +91,7 @@ pub impl FontconfigFontListHandle {
if FcPatternGetString(*font, FC_FILE, 0, &file) == FcResultMatch {
str::raw::from_c_str(file as *libc::c_char)
} else {
- fail;
+ fail!();
}
};
let index = do str::as_c_str("index") |FC_INDEX| {
@@ -98,7 +99,7 @@ pub impl FontconfigFontListHandle {
if FcPatternGetInteger(*font, FC_INDEX, 0, &index) == FcResultMatch {
index
} else {
- fail;
+ fail!();
}
};
diff --git a/src/servo-gfx/freetype_impl/font_context.rs b/src/servo-gfx/freetype_impl/font_context.rs
index 4b263f7dc10..2c6e49093bf 100644
--- a/src/servo-gfx/freetype_impl/font_context.rs
+++ b/src/servo-gfx/freetype_impl/font_context.rs
@@ -36,7 +36,7 @@ pub impl FreeTypeFontContextHandle {
static pub fn new() -> FreeTypeFontContextHandle {
let ctx: FT_Library = ptr::null();
let result = FT_Init_FreeType(ptr::to_unsafe_ptr(&ctx));
- if !result.succeeded() { fail; }
+ if !result.succeeded() { fail!(); }
FreeTypeFontContextHandle {
ctx: @FreeTypeLibraryHandle { ctx: ctx },
diff --git a/src/servo-gfx/render_layers.rs b/src/servo-gfx/render_layers.rs
index 172a82479b0..889b26c086e 100644
--- a/src/servo-gfx/render_layers.rs
+++ b/src/servo-gfx/render_layers.rs
@@ -6,7 +6,7 @@ use util::time;
use azure::AzFloat;
use azure::azure_hl::{B8G8R8A8, DrawTarget};
use core::libc::c_int;
-use core::pipes::Chan;
+use core::comm::Chan;
use geom::matrix2d::Matrix2D;
use geom::point::Point2D;
use geom::rect::Rect;
@@ -111,7 +111,7 @@ pub fn render_layers(layer_ref: *RenderLayer,
//}
// Create a port and channel pair to receive the new buffer.
- let (new_buffer_port, new_buffer_chan) = pipes::stream();
+ let (new_buffer_port, new_buffer_chan) = comm::stream();
// Send the buffer to the child.
f(layer_ref, buffer, new_buffer_chan);
diff --git a/src/servo-gfx/render_task.rs b/src/servo-gfx/render_task.rs
index 08bcbc164df..a78bc50a40f 100644
--- a/src/servo-gfx/render_task.rs
+++ b/src/servo-gfx/render_task.rs
@@ -12,7 +12,7 @@ use util::time::time;
use core::libc::size_t;
use core::libc::types::common::c99::uint16_t;
-use core::pipes::{Chan, Port, SharedChan};
+use core::comm::{Chan, Port, SharedChan};
use core::task::SingleThreaded;
use std::arc::ARC;
use std::arc;
@@ -21,7 +21,7 @@ use std::task_pool::TaskPool;
pub enum Msg {
RenderMsg(RenderLayer),
- ExitMsg(pipes::Chan<()>)
+ ExitMsg(comm::Chan<()>)
}
pub type RenderTask = SharedChan<Msg>;
@@ -30,7 +30,7 @@ pub fn RenderTask<C:Compositor + Owned>(compositor: C, opts: Opts) -> RenderTask
let compositor_cell = Cell(compositor);
let opts_cell = Cell(opts);
let render_task = do spawn_listener |po: Port<Msg>| {
- let (layer_buffer_set_port, layer_buffer_channel) = pipes::stream();
+ let (layer_buffer_set_port, layer_buffer_channel) = comm::stream();
let compositor = compositor_cell.take();
compositor.begin_drawing(layer_buffer_channel);
@@ -38,10 +38,10 @@ pub fn RenderTask<C:Compositor + Owned>(compositor: C, opts: Opts) -> RenderTask
// FIXME: Annoying three-cell dance here. We need one-shot closures.
let opts = opts_cell.with_ref(|o| copy *o);
let n_threads = opts.n_render_threads;
- let new_opts_cell: Cell<Opts> = Cell(opts);
+ let new_opts_cell = Cell(opts);
let thread_pool = do TaskPool::new(n_threads, Some(SingleThreaded)) {
- let opts_cell: Cell<Opts> = Cell(new_opts_cell.with_ref(|o| copy *o));
+ let opts_cell = Cell(new_opts_cell.with_ref(|o| copy *o));
let f: ~fn(uint) -> ThreadRenderContext = |thread_index| {
ThreadRenderContext {
thread_index: thread_index,
@@ -73,12 +73,12 @@ priv struct ThreadRenderContext {
priv struct Renderer<C> {
port: Port<Msg>,
compositor: C,
- layer_buffer_set_port: Cell<pipes::Port<LayerBufferSet>>,
+ layer_buffer_set_port: Cell<comm::Port<LayerBufferSet>>,
thread_pool: TaskPool<ThreadRenderContext>,
opts: Opts,
}
-impl<C: Compositor Owned> Renderer<C> {
+impl<C: Compositor + Owned> Renderer<C> {
fn start() {
debug!("renderer: beginning rendering loop");
@@ -103,7 +103,7 @@ impl<C: Compositor Owned> Renderer<C> {
}
let layer_buffer_set = layer_buffer_set_port.recv();
- let (new_layer_buffer_set_port, layer_buffer_set_channel) = pipes::stream();
+ let (new_layer_buffer_set_port, layer_buffer_set_channel) = comm::stream();
self.layer_buffer_set_port.put_back(new_layer_buffer_set_port);
let layer_buffer_set_cell = Cell(layer_buffer_set);
diff --git a/src/servo-gfx/resource/file_loader.rs b/src/servo-gfx/resource/file_loader.rs
index be883a216ff..466f160e20e 100644
--- a/src/servo-gfx/resource/file_loader.rs
+++ b/src/servo-gfx/resource/file_loader.rs
@@ -1,4 +1,4 @@
-use pipes::Chan;
+use comm::Chan;
use task::spawn;
use resource::resource_task::{ProgressMsg, Payload, Done, LoaderTask};
use std::net::url::Url;
diff --git a/src/servo-gfx/resource/http_loader.rs b/src/servo-gfx/resource/http_loader.rs
index b91d11eef9c..fb3b13f11fd 100644
--- a/src/servo-gfx/resource/http_loader.rs
+++ b/src/servo-gfx/resource/http_loader.rs
@@ -1,4 +1,4 @@
-use pipes::{Chan, SharedChan};
+use comm::{Chan, SharedChan};
use task::spawn;
use resource::resource_task::{ProgressMsg, Payload, Done, LoaderTask};
use std::cell::Cell;
diff --git a/src/servo-gfx/resource/image_cache_task.rs b/src/servo-gfx/resource/image_cache_task.rs
index 533b06b1f90..07b0b3d1b26 100644
--- a/src/servo-gfx/resource/image_cache_task.rs
+++ b/src/servo-gfx/resource/image_cache_task.rs
@@ -4,7 +4,7 @@ use resource::resource_task::ResourceTask;
use util::url::{make_url, UrlMap, url_map};
use clone_arc = std::arc::clone;
-use core::pipes::{Chan, Port, SharedChan, stream};
+use core::comm::{Chan, Port, SharedChan, stream};
use core::task::spawn;
use resource::util::spawn_listener;
use core::to_str::ToStr;
diff --git a/src/servo-gfx/resource/local_image_cache.rs b/src/servo-gfx/resource/local_image_cache.rs
index 40c0096a4e6..047812102d9 100644
--- a/src/servo-gfx/resource/local_image_cache.rs
+++ b/src/servo-gfx/resource/local_image_cache.rs
@@ -6,7 +6,7 @@ multiple times and thus triggering reflows multiple times.
use clone_arc = std::arc::clone;
use std::net::url::Url;
-use pipes::{Port, Chan, stream};
+use comm::{Port, Chan, stream};
use resource::image_cache_task::{ImageCacheTask, ImageResponseMsg, Prefetch, Decode, GetImage};
use resource::image_cache_task::{ WaitForImage, ImageReady, ImageNotReady, ImageFailed};
use util::url::{UrlMap, url_map};
@@ -73,14 +73,14 @@ pub impl LocalImageCache {
ImageReady(ref image) => {
// FIXME: appease borrowck
unsafe {
- let (port, chan) = pipes::stream();
+ let (port, chan) = comm::stream();
chan.send(ImageReady(clone_arc(image)));
return port;
}
}
ImageNotReady => {
if last_round == self.round_number {
- let (port, chan) = pipes::stream();
+ let (port, chan) = comm::stream();
chan.send(ImageNotReady);
return port;
} else {
@@ -89,13 +89,13 @@ pub impl LocalImageCache {
}
}
ImageFailed => {
- let (port, chan) = pipes::stream();
+ let (port, chan) = comm::stream();
chan.send(ImageFailed);
return port;
}
}
- let (response_port, response_chan) = pipes::stream();
+ let (response_port, response_chan) = comm::stream();
self.image_cache_task.send(GetImage(copy *url, response_chan));
let response = response_port.recv();
@@ -111,7 +111,7 @@ pub impl LocalImageCache {
let on_image_available = self.on_image_available.get()();
let url = copy *url;
do task::spawn {
- let (response_port, response_chan) = pipes::stream();
+ let (response_port, response_chan) = comm::stream();
image_cache_task.send(WaitForImage(copy url, response_chan));
on_image_available(response_port.recv());
}
@@ -127,7 +127,7 @@ pub impl LocalImageCache {
};
state.last_response = response_copy;
- let (port, chan) = pipes::stream();
+ let (port, chan) = comm::stream();
chan.send(response);
return port;
}
diff --git a/src/servo-gfx/resource/resource_task.rs b/src/servo-gfx/resource/resource_task.rs
index e358a6d81dc..5f31dc63332 100644
--- a/src/servo-gfx/resource/resource_task.rs
+++ b/src/servo-gfx/resource/resource_task.rs
@@ -4,7 +4,7 @@ A task that takes a URL and streams back the binary data
*/
-use pipes::{Chan, Port, SharedChan};
+use comm::{Chan, Port, SharedChan};
use resource::util::spawn_listener;
use std::cell::Cell;
use std::net::url;
@@ -69,8 +69,8 @@ pub struct ResourceManager {
pub fn ResourceManager(from_client: Port<ControlMsg>,
loaders: ~[(~str, LoaderTaskFactory)]) -> ResourceManager {
ResourceManager {
- from_client: from_client,
- loaders: loaders,
+ from_client : from_client,
+ loaders : loaders,
}
}
diff --git a/src/servo-gfx/resource/util.rs b/src/servo-gfx/resource/util.rs
index 545c540b581..fb9d1d75481 100644
--- a/src/servo-gfx/resource/util.rs
+++ b/src/servo-gfx/resource/util.rs
@@ -1,10 +1,9 @@
-use core::pipes::{Chan, Port};
-use core::pipes;
+use core::comm::{Chan, Port};
pub fn spawn_listener<A: Owned>(f: ~fn(Port<A>)) -> Chan<A> {
- let (setup_po, setup_ch) = pipes::stream();
+ let (setup_po, setup_ch) = comm::stream();
do task::spawn {
- let (po, ch) = pipes::stream();
+ let (po, ch) = comm::stream();
setup_ch.send(ch);
f(po);
}
diff --git a/src/servo-gfx/util/cache.rs b/src/servo-gfx/util/cache.rs
index 0d319cf93e3..9e588e0f27e 100644
--- a/src/servo-gfx/util/cache.rs
+++ b/src/servo-gfx/util/cache.rs
@@ -1,6 +1,6 @@
use core::cmp::*;
-pub trait Cache<K: Copy Eq, V: Copy> {
+pub trait Cache<K: Copy + Eq, V: Copy> {
static fn new(size: uint) -> Self;
fn insert(key: &K, value: V);
fn find(key: &K) -> Option<V>;
@@ -12,7 +12,7 @@ pub struct MonoCache<K, V> {
mut entry: Option<(K,V)>,
}
-pub impl<K: Copy Eq, V: Copy> Cache<K,V> for MonoCache<K,V> {
+pub impl<K: Copy + Eq, V: Copy> Cache<K,V> for MonoCache<K,V> {
static fn new(_size: uint) -> MonoCache<K,V> {
MonoCache { entry: None }
}
diff --git a/src/servo-gfx/util/vec.rs b/src/servo-gfx/util/vec.rs
index 93efd36947a..d9b583b6e10 100644
--- a/src/servo-gfx/util/vec.rs
+++ b/src/servo-gfx/util/vec.rs
@@ -1,11 +1,11 @@
use core::cmp::{Ord, Eq};
-pub trait BinarySearchMethods<T: Ord Eq> {
+pub trait BinarySearchMethods<T: Ord + Eq> {
pure fn binary_search(&self, key: &T) -> Option<&self/T>;
pure fn binary_search_index(&self, key: &T) -> Option<uint>;
}
-pub impl<T: Ord Eq> BinarySearchMethods<T> for &[T] {
+pub impl<T: Ord + Eq> BinarySearchMethods<T> for &[T] {
pure fn binary_search(&self, key: &T) -> Option<&self/T> {
match self.binary_search_index(key) {
None => None,
@@ -38,7 +38,7 @@ pub impl<T: Ord Eq> BinarySearchMethods<T> for &[T] {
}
}
-fn test_find_all_elems<T: Eq Ord>(arr: &[T]) {
+fn test_find_all_elems<T: Eq + Ord>(arr: &[T]) {
let mut i = 0;
while i < arr.len() {
assert test_match(&arr[i], arr.binary_search(&arr[i]));
@@ -46,7 +46,7 @@ fn test_find_all_elems<T: Eq Ord>(arr: &[T]) {
}
}
-fn test_miss_all_elems<T: Eq Ord>(arr: &[T], misses: &[T]) {
+fn test_miss_all_elems<T: Eq + Ord>(arr: &[T], misses: &[T]) {
let mut i = 0;
while i < misses.len() {
let res = arr.binary_search(&misses[i]);
diff --git a/src/servo/content/content_task.rs b/src/servo/content/content_task.rs
index 3981eb0e589..b17b0e26fbf 100644
--- a/src/servo/content/content_task.rs
+++ b/src/servo/content/content_task.rs
@@ -13,7 +13,8 @@ use layout::layout_task::{AddStylesheet, BuildData, BuildMsg, Damage, LayoutTask
use layout::layout_task::{MatchSelectorsDamage, NoDamage, ReflowDamage};
use util::task::spawn_listener;
-use core::pipes::{Port, Chan, SharedChan, select2};
+use core::comm::{Port, Chan, SharedChan};
+use core::pipes::select2i;
use core::either;
use core::task::{SingleThreaded, spawn, task};
use core::io::{println, read_whole_file};
@@ -57,7 +58,7 @@ pub fn ContentTask(layout_task: LayoutTask,
resource_task: ResourceTask,
img_cache_task: ImageCacheTask)
-> ContentTask {
- let (control_port, control_chan) = pipes::stream();
+ let (control_port, control_chan) = comm::stream();
let control_chan = SharedChan(control_chan);
let control_chan_copy = control_chan.clone();
@@ -81,13 +82,13 @@ pub fn ContentTask(layout_task: LayoutTask,
pub struct Content {
layout_task: LayoutTask,
- mut layout_join_port: Option<pipes::Port<()>>,
+ mut layout_join_port: Option<comm::Port<()>>,
image_cache_task: ImageCacheTask,
- control_port: pipes::Port<ControlMsg>,
- control_chan: pipes::SharedChan<ControlMsg>,
- event_port: pipes::Port<Event>,
- event_chan: pipes::SharedChan<Event>,
+ control_port: comm::Port<ControlMsg>,
+ control_chan: comm::SharedChan<ControlMsg>,
+ event_port: comm::Port<Event>,
+ event_chan: comm::SharedChan<Event>,
scope: NodeScope,
jsrt: jsrt,
@@ -107,12 +108,12 @@ pub struct Content {
}
pub fn Content(layout_task: LayoutTask,
- control_port: pipes::Port<ControlMsg>,
- control_chan: pipes::SharedChan<ControlMsg>,
+ control_port: comm::Port<ControlMsg>,
+ control_chan: comm::SharedChan<ControlMsg>,
resource_task: ResourceTask,
img_cache_task: ImageCacheTask,
- event_port: pipes::Port<Event>,
- event_chan: pipes::SharedChan<Event>)
+ event_port: comm::Port<Event>,
+ event_chan: comm::SharedChan<Event>)
-> @Content {
let jsrt = jsrt();
let cx = jsrt.cx();
@@ -169,7 +170,7 @@ impl Content {
}
fn handle_msg() -> bool {
- match pipes::select2i(&self.control_port, &self.event_port) {
+ match select2i(&self.control_port, &self.event_port) {
either::Left(*) => self.handle_control_msg(self.control_port.recv()),
either::Right(*) => self.handle_event(self.event_port.recv())
}
@@ -306,7 +307,7 @@ impl Content {
self.join_layout();
// Layout will let us know when it's done
- let (join_port, join_chan) = pipes::stream();
+ let (join_port, join_chan) = comm::stream();
self.layout_join_port = Some(join_port);
// Send new document and relevant styles to layout
@@ -333,7 +334,7 @@ impl Content {
self.relayout(self.document.get(), &(copy self.doc_url).get());
self.join_layout();
- let (response_port, response_chan) = pipes::stream();
+ let (response_port, response_chan) = comm::stream();
self.layout_task.send(layout_task::QueryMsg(query, response_chan));
return response_port.recv()
}
diff --git a/src/servo/dom/bindings/document.rs b/src/servo/dom/bindings/document.rs
index 7ad1c65e9f9..165c6d48375 100644
--- a/src/servo/dom/bindings/document.rs
+++ b/src/servo/dom/bindings/document.rs
@@ -1,7 +1,8 @@
use js::rust::{Compartment, jsobj};
use js::{JS_ARGV, JSCLASS_HAS_RESERVED_SLOTS, JSPROP_ENUMERATE, JSPROP_SHARED,
JSVAL_NULL, JS_THIS_OBJECT, JS_SET_RVAL, JSPROP_NATIVE_ACCESSORS};
-use js::jsapi::{JSContext, JSVal, JSObject, JSBool, jsid, JSClass, JSFreeOp};
+use js::jsapi::{JSContext, JSVal, JSObject, JSBool, jsid, JSClass, JSFreeOp,
+ JSPropertySpec, JSPropertyOpWrapper, JSStrictPropertyOpWrapper};
use js::jsapi::bindgen::{JS_ValueToString, JS_GetStringCharsZAndLength, JS_ReportError,
JS_GetReservedSlot, JS_SetReservedSlot, JS_NewStringCopyN,
JS_DefineFunctions, JS_DefineProperty, JS_DefineProperties};
@@ -95,16 +96,18 @@ pub fn init(compartment: @mut Compartment, doc: @Document) {
let obj = utils::define_empty_prototype(~"Document", None, compartment);
let attrs = @~[
- {name: compartment.add_name(~"documentElement"),
+ JSPropertySpec {
+ name: compartment.add_name(~"documentElement"),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: getDocumentElement, info: null()},
- setter: {op: null(), info: null()}},
- {name: null(),
+ getter: JSPropertyOpWrapper {op: getDocumentElement, info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
+ JSPropertySpec {
+ name: null(),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: null(), info: null()},
- setter: {op: null(), info: null()}}];
+ getter: JSPropertyOpWrapper {op: null(), info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}}];
vec::push(&mut compartment.global_props, attrs);
vec::as_imm_buf(*attrs, |specs, _len| {
assert JS_DefineProperties(compartment.cx.ptr, obj.ptr, specs) == 1;
diff --git a/src/servo/dom/bindings/element.rs b/src/servo/dom/bindings/element.rs
index 93f1ef0a76f..8e624e5b806 100644
--- a/src/servo/dom/bindings/element.rs
+++ b/src/servo/dom/bindings/element.rs
@@ -1,7 +1,8 @@
use js::rust::{Compartment, jsobj};
use js::{JS_ARGV, JSCLASS_HAS_RESERVED_SLOTS, JSPROP_ENUMERATE, JSPROP_SHARED, JSVAL_NULL,
JS_THIS_OBJECT, JS_SET_RVAL, JSPROP_NATIVE_ACCESSORS};
-use js::jsapi::{JSContext, JSVal, JSObject, JSBool, jsid, JSClass, JSFreeOp, JSPropertySpec};
+use js::jsapi::{JSContext, JSVal, JSObject, JSBool, jsid, JSClass, JSFreeOp, JSPropertySpec,
+ JSPropertyOpWrapper, JSStrictPropertyOpWrapper};
use js::jsapi::bindgen::{JS_ValueToString, JS_GetStringCharsZAndLength, JS_ReportError,
JS_GetReservedSlot, JS_SetReservedSlot, JS_NewStringCopyN,
JS_DefineFunctions, JS_DefineProperty};
@@ -32,16 +33,18 @@ extern fn finalize(_fop: *JSFreeOp, obj: *JSObject) {
pub fn init(compartment: @mut Compartment) {
let obj = utils::define_empty_prototype(~"Element", Some(~"Node"), compartment);
let attrs = @~[
- {name: compartment.add_name(~"tagName"),
+ JSPropertySpec {
+ name: compartment.add_name(~"tagName"),
tinyid: 0,
flags: (JSPROP_ENUMERATE | JSPROP_SHARED | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: getTagName, info: null()},
- setter: {op: null(), info: null()}},
- {name: null(),
+ getter: JSPropertyOpWrapper {op: getTagName, info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
+ JSPropertySpec {
+ name: null(),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: null(), info: null()},
- setter: {op: null(), info: null()}}];
+ getter: JSPropertyOpWrapper {op: null(), info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}}];
vec::push(&mut compartment.global_props, attrs);
vec::as_imm_buf(*attrs, |specs, _len| {
JS_DefineProperties(compartment.cx.ptr, obj.ptr, specs);
@@ -57,16 +60,16 @@ pub fn init(compartment: @mut Compartment) {
let obj = utils::define_empty_prototype(~"HTMLImageElement", Some(~"HTMLElement"), compartment);
let attrs = @~[
- {name: compartment.add_name(~"width"),
+ JSPropertySpec {name: compartment.add_name(~"width"),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: HTMLImageElement_getWidth, info: null()},
- setter: {op: HTMLImageElement_setWidth, info: null()}},
- {name: null(),
+ getter: JSPropertyOpWrapper {op: HTMLImageElement_getWidth, info: null()},
+ setter: JSStrictPropertyOpWrapper {op: HTMLImageElement_setWidth, info: null()}},
+ JSPropertySpec {name: null(),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: null(), info: null()},
- setter: {op: null(), info: null()}}];
+ getter: JSPropertyOpWrapper {op: null(), info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}}];
vec::push(&mut compartment.global_props, attrs);
vec::as_imm_buf(*attrs, |specs, _len| {
JS_DefineProperties(compartment.cx.ptr, obj.ptr, specs);
diff --git a/src/servo/dom/bindings/node.rs b/src/servo/dom/bindings/node.rs
index 1a8f05c5b20..a1a5d580c08 100644
--- a/src/servo/dom/bindings/node.rs
+++ b/src/servo/dom/bindings/node.rs
@@ -1,7 +1,8 @@
use js::rust::{Compartment, jsobj};
use js::{JS_ARGV, JSCLASS_HAS_RESERVED_SLOTS, JSPROP_ENUMERATE, JSPROP_SHARED, JSVAL_NULL,
JS_THIS_OBJECT, JS_SET_RVAL, JSPROP_NATIVE_ACCESSORS};
-use js::jsapi::{JSContext, JSVal, JSObject, JSBool, jsid, JSClass, JSFreeOp, JSPropertySpec};
+use js::jsapi::{JSContext, JSVal, JSObject, JSBool, jsid, JSClass, JSFreeOp, JSPropertySpec,
+ JSPropertyOpWrapper, JSStrictPropertyOpWrapper};
use js::jsapi::bindgen::{JS_ValueToString, JS_GetStringCharsZAndLength, JS_ReportError,
JS_GetReservedSlot, JS_SetReservedSlot, JS_NewStringCopyN,
JS_DefineFunctions, JS_DefineProperty, JS_GetContextPrivate};
@@ -22,29 +23,33 @@ pub fn init(compartment: @mut Compartment) {
let obj = utils::define_empty_prototype(~"Node", None, compartment);
let attrs = @~[
- {name: compartment.add_name(~"firstChild"),
+ JSPropertySpec {
+ name: compartment.add_name(~"firstChild"),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: getFirstChild, info: null()},
- setter: {op: null(), info: null()}},
+ getter: JSPropertyOpWrapper {op: getFirstChild, info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
- {name: compartment.add_name(~"nextSibling"),
+ JSPropertySpec {
+ name: compartment.add_name(~"nextSibling"),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: getNextSibling, info: null()},
- setter: {op: null(), info: null()}},
+ getter: JSPropertyOpWrapper {op: getNextSibling, info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
- {name: compartment.add_name(~"nodeType"),
+ JSPropertySpec {
+ name: compartment.add_name(~"nodeType"),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: getNodeType, info: null()},
- setter: {op: null(), info: null()}},
+ getter: JSPropertyOpWrapper {op: getNodeType, info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}},
- {name: null(),
+ JSPropertySpec {
+ name: null(),
tinyid: 0,
flags: (JSPROP_SHARED | JSPROP_ENUMERATE | JSPROP_NATIVE_ACCESSORS) as u8,
- getter: {op: null(), info: null()},
- setter: {op: null(), info: null()}}];
+ getter: JSPropertyOpWrapper {op: null(), info: null()},
+ setter: JSStrictPropertyOpWrapper {op: null(), info: null()}}];
vec::push(&mut compartment.global_props, attrs);
vec::as_imm_buf(*attrs, |specs, _len| {
JS_DefineProperties(compartment.cx.ptr, obj.ptr, specs);
diff --git a/src/servo/dom/cow.rs b/src/servo/dom/cow.rs
index 9568402214e..4d4311925a3 100644
--- a/src/servo/dom/cow.rs
+++ b/src/servo/dom/cow.rs
@@ -63,11 +63,11 @@ use core::libc::types::os::arch::c95::size_t;
use ptr::Ptr;
use vec::push;
-type ScopeData<T,A> = {
+struct ScopeData<T,A> {
mut layout_active: bool,
mut free_list: ~[Handle<T,A>],
mut first_dirty: Handle<T,A>
-};
+}
struct ScopeResource<T,A> {
d : ScopeData<T,A>,
@@ -149,7 +149,7 @@ impl<T:Owned,A> cmp::Eq for Handle<T,A> {
}
// Private methods
-impl<T: Copy Owned,A> Scope<T,A> {
+impl<T: Copy + Owned,A> Scope<T,A> {
fn clone(v: *T) -> *T {
unsafe {
let n: *mut T =
@@ -190,13 +190,16 @@ fn null_handle<T:Owned,A>() -> Handle<T,A> {
}
pub fn Scope<T:Owned,A>() -> Scope<T,A> {
- @ScopeResource({mut layout_active: false,
- mut free_list: ~[],
- mut first_dirty: null_handle()})
+ @ScopeResource(
+ ScopeData {
+ mut layout_active: false,
+ mut free_list: ~[],
+ mut first_dirty: null_handle()
+ })
}
// Writer methods
-impl<T:Copy Owned,A> Scope<T,A> {
+impl<T:Copy + Owned,A> Scope<T,A> {
fn is_reader_forked() -> bool {
self.d.layout_active
}
diff --git a/src/servo/dom/event.rs b/src/servo/dom/event.rs
index f3242c93927..8f15f3cb90c 100644
--- a/src/servo/dom/event.rs
+++ b/src/servo/dom/event.rs
@@ -1,5 +1,5 @@
pub enum Event {
- ResizeEvent(uint, uint, pipes::Chan<()>),
+ ResizeEvent(uint, uint, comm::Chan<()>),
ReflowEvent
}
diff --git a/src/servo/dom/node.rs b/src/servo/dom/node.rs
index 60e1fda7cd4..a5c95d9efdc 100644
--- a/src/servo/dom/node.rs
+++ b/src/servo/dom/node.rs
@@ -17,10 +17,10 @@ use std::arc::ARC;
use util::tree;
use super::cow;
-pub enum NodeData = {
+pub struct NodeData {
tree: tree::Tree<Node>,
kind: ~NodeKind,
-};
+}
/* The tree holding Nodes (read-only) */
pub enum NodeTree { NodeTree }
@@ -124,14 +124,14 @@ pub fn define_bindings(compartment: @mut Compartment, doc: @Document, win: @Wind
/** The COW rd_aux data is a (weak) pointer to the layout data,
- defined by this `LayoutData` enum. It contains the CSS style object
+ defined by this `LayoutData` struct. It contains the CSS style object
as well as the primary `RenderBox`.
Note that there may be multiple boxes per DOM node. */
-enum LayoutData = {
+pub struct LayoutData {
mut style: Option<CompleteSelectResults>,
mut flow: Option<@FlowContext>
-};
+}
pub type Node = cow::Handle<NodeData, LayoutData>;
@@ -148,7 +148,7 @@ pub trait NodeScopeExtensions {
#[allow(non_implicitly_copyable_typarams)]
impl NodeScopeExtensions for NodeScope {
fn new_node(k: NodeKind) -> Node {
- self.handle(&NodeData({tree: tree::empty(), kind: ~k}))
+ self.handle(&NodeData {tree: tree::empty(), kind: ~k})
}
}
diff --git a/src/servo/dom/window.rs b/src/servo/dom/window.rs
index c4dad24844c..4b3aad9d409 100644
--- a/src/servo/dom/window.rs
+++ b/src/servo/dom/window.rs
@@ -1,4 +1,4 @@
-use core::pipes::{Port, Chan};
+use core::comm::{Port, Chan};
use content::content_task::{ControlMsg, Timer, ExitMsg};
use js::jsapi::JSVal;
use dvec::DVec;
@@ -69,7 +69,7 @@ impl Window {
}
}
-pub fn Window(content_chan: pipes::SharedChan<ControlMsg>) -> Window {
+pub fn Window(content_chan: comm::SharedChan<ControlMsg>) -> Window {
Window {
timer_chan: do spawn_listener |timer_port: Port<TimerControlMsg>| {
diff --git a/src/servo/engine.rs b/src/servo/engine.rs
index bf3897fdcf7..c302adb94e4 100644
--- a/src/servo/engine.rs
+++ b/src/servo/engine.rs
@@ -8,7 +8,7 @@ use resource::resource_task::ResourceTask;
use resource::resource_task;
use util::task::spawn_listener;
-use core::pipes::{Port, Chan};
+use core::comm::{Port, Chan};
use gfx::compositor::Compositor;
use gfx::opts::Opts;
use gfx::render_task::RenderTask;
@@ -35,8 +35,8 @@ pub struct Engine<C> {
pub fn Engine<C:Compositor + Owned + Clone>(compositor: C,
opts: &Opts,
- dom_event_port: pipes::Port<Event>,
- dom_event_chan: pipes::SharedChan<Event>,
+ dom_event_port: comm::Port<Event>,
+ dom_event_chan: comm::SharedChan<Event>,
resource_task: ResourceTask,
image_cache_task: ImageCacheTask)
-> EngineTask {
@@ -87,7 +87,7 @@ impl<C:Compositor + Owned + Clone> Engine<C> {
self.content_task.send(content_task::ExitMsg);
self.layout_task.send(layout_task::ExitMsg);
- let (response_port, response_chan) = pipes::stream();
+ let (response_port, response_chan) = comm::stream();
self.render_task.send(render_task::ExitMsg(response_chan));
response_port.recv();
diff --git a/src/servo/html/cssparse.rs b/src/servo/html/cssparse.rs
index 028c9be5fcf..e6202162799 100644
--- a/src/servo/html/cssparse.rs
+++ b/src/servo/html/cssparse.rs
@@ -4,7 +4,7 @@ Some little helpers for hooking up the HTML parser with the CSS parser
use resource::resource_task::{ResourceTask, ProgressMsg, Load, Payload, Done};
-use core::pipes::{Port, Chan};
+use core::comm::{Port, Chan};
use core::pipes;
use core::str;
use newcss::stylesheet::Stylesheet;
@@ -22,10 +22,10 @@ pub enum StylesheetProvenance {
pub fn spawn_css_parser(provenance: StylesheetProvenance,
resource_task: ResourceTask)
-> Port<Stylesheet> {
- let (result_port, result_chan) = pipes::stream();
+ let (result_port, result_chan) = comm::stream();
let provenance_cell = Cell(provenance);
- do task::spawn |copy resource_task| {
+ do task::spawn {
let url = do provenance_cell.with_ref |p| {
match *p {
UrlProvenance(copy the_url) => the_url,
@@ -44,7 +44,7 @@ pub fn spawn_css_parser(provenance: StylesheetProvenance,
fn data_stream(provenance: StylesheetProvenance, resource_task: ResourceTask) -> DataStream {
match provenance {
UrlProvenance(url) => {
- let (input_port, input_chan) = pipes::stream();
+ let (input_port, input_chan) = comm::stream();
resource_task.send(Load(url, input_chan));
resource_port_to_data_stream(input_port)
}
diff --git a/src/servo/html/hubbub_html_parser.rs b/src/servo/html/hubbub_html_parser.rs
index c797969d8ee..d1565c63ecd 100644
--- a/src/servo/html/hubbub_html_parser.rs
+++ b/src/servo/html/hubbub_html_parser.rs
@@ -11,7 +11,7 @@ use resource::image_cache_task;
use resource::resource_task::{Done, Load, Payload, ResourceTask};
use util::task::{spawn_listener, spawn_conversation};
-use core::pipes::{Chan, Port, SharedChan};
+use core::comm::{Chan, Port, SharedChan};
use html::cssparse::{InlineProvenance, StylesheetProvenance, UrlProvenance, spawn_css_parser};
use hubbub::hubbub::Attribute;
use hubbub::hubbub;
@@ -84,10 +84,10 @@ fn js_script_listener(to_parent: Chan<~[~[u8]]>,
loop {
match from_parent.recv() {
JSTaskNewFile(url) => {
- let (result_port, result_chan) = pipes::stream();
+ let (result_port, result_chan) = comm::stream();
let resource_task = resource_task.clone();
do task::spawn {
- let (input_port, input_chan) = pipes::stream();
+ let (input_port, input_chan) = comm::stream();
// TODO: change copy to move once we can move into closures
resource_task.send(Load(copy url, input_chan));
@@ -379,7 +379,7 @@ pub fn parse_html(scope: NodeScope,
});
debug!("set tree handler");
- let (input_port, input_chan) = pipes::stream();
+ let (input_port, input_chan) = comm::stream();
resource_task.send(Load(copy *url, input_chan));
debug!("loaded page");
loop {
diff --git a/src/servo/layout/aux.rs b/src/servo/layout/aux.rs
index 22e3e77785e..f83d9035588 100644
--- a/src/servo/layout/aux.rs
+++ b/src/servo/layout/aux.rs
@@ -17,10 +17,10 @@ impl LayoutAuxMethods for Node {
fn initialize_layout_data() -> Option<@LayoutData> {
match self.has_aux() {
false => {
- let data = @LayoutData({
+ let data = @LayoutData {
mut style : None,
mut flow : None
- });
+ };
self.set_aux(data); Some(data)
},
true => None
diff --git a/src/servo/layout/inline.rs b/src/servo/layout/inline.rs
index 3ae934efa3e..51693ddc501 100644
--- a/src/servo/layout/inline.rs
+++ b/src/servo/layout/inline.rs
@@ -322,11 +322,16 @@ priv impl TextRunScanner {
} /* /fn flush_clump_to_list */
}
+struct PendingLine {
+ mut range: Range,
+ mut width: Au
+}
+
struct LineboxScanner {
flow: @FlowContext,
new_boxes: DVec<@RenderBox>,
work_list: @mut DList<@RenderBox>,
- pending_line: {mut range: Range, mut width: Au},
+ pending_line: PendingLine,
line_spans: DVec<Range>,
}
@@ -337,7 +342,7 @@ fn LineboxScanner(inline: @FlowContext) -> LineboxScanner {
flow: inline,
new_boxes: DVec(),
work_list: DList(),
- pending_line: {mut range: Range::empty(), mut width: Au(0)},
+ pending_line: PendingLine {mut range: Range::empty(), mut width: Au(0)},
line_spans: DVec()
}
}
diff --git a/src/servo/layout/layout_task.rs b/src/servo/layout/layout_task.rs
index 762981f9ab2..699399f8b6b 100644
--- a/src/servo/layout/layout_task.rs
+++ b/src/servo/layout/layout_task.rs
@@ -18,7 +18,7 @@ use resource::local_image_cache::LocalImageCache;
use util::task::spawn_listener;
use util::time::time;
-use core::pipes::{Chan, Port, SharedChan};
+use core::comm::{Chan, Port, SharedChan};
use core::dvec::DVec;
use core::mutable::Mut;
use core::task::*;
@@ -79,9 +79,9 @@ impl Damage {
pub struct BuildData {
node: Node,
url: Url,
- dom_event_chan: pipes::SharedChan<Event>,
+ dom_event_chan: comm::SharedChan<Event>,
window_size: Size2D<uint>,
- content_join_chan: pipes::Chan<()>,
+ content_join_chan: comm::Chan<()>,
damage: Damage,
}
@@ -295,7 +295,7 @@ impl Layout {
// to the content task, and ultimately cause the image to be
// re-requested. We probably don't need to go all the way back to
// the content task for this.
- fn make_on_image_available_cb(dom_event_chan: pipes::SharedChan<Event>) -> @fn() -> ~fn(ImageResponseMsg) {
+ fn make_on_image_available_cb(dom_event_chan: comm::SharedChan<Event>) -> @fn() -> ~fn(ImageResponseMsg) {
// This has a crazy signature because the image cache needs to
// make multiple copies of the callback, and the dom event
// channel is not a copyable type, so this is actually a
diff --git a/src/servo/platform/osmain.rs b/src/servo/platform/osmain.rs
index 4a3ba0d0e4d..baae1bda3c9 100644
--- a/src/servo/platform/osmain.rs
+++ b/src/servo/platform/osmain.rs
@@ -4,7 +4,7 @@ use platform::resize_rate_limiter::ResizeRateLimiter;
use azure::azure_hl::{BackendType, B8G8R8A8, DataSourceSurface, DrawTarget, SourceSurfaceMethods};
use core::dvec::DVec;
-use core::pipes::{Chan, SharedChan, Port};
+use core::comm::{Chan, SharedChan, Port};
use core::task::TaskBuilder;
use core::util;
use geom::matrix::{Matrix4, identity};
@@ -46,13 +46,13 @@ enum Window {
}
pub enum Msg {
- BeginDrawing(pipes::Chan<LayerBufferSet>),
- Draw(pipes::Chan<LayerBufferSet>, LayerBufferSet),
- AddKeyHandler(pipes::Chan<()>),
+ BeginDrawing(comm::Chan<LayerBufferSet>),
+ Draw(comm::Chan<LayerBufferSet>, LayerBufferSet),
+ AddKeyHandler(comm::Chan<()>),
Exit
}
-pub fn OSMain(dom_event_chan: pipes::SharedChan<Event>, opts: Opts) -> OSMain {
+pub fn OSMain(dom_event_chan: comm::SharedChan<Event>, opts: Opts) -> OSMain {
let dom_event_chan = Cell(dom_event_chan);
OSMain {
chan: SharedChan(on_osmain::<Msg>(|po| {
@@ -276,10 +276,10 @@ Implementation to allow the osmain channel to be used as a graphics
compositor for the renderer
*/
impl Compositor for OSMain {
- fn begin_drawing(next_dt: pipes::Chan<LayerBufferSet>) {
+ fn begin_drawing(next_dt: comm::Chan<LayerBufferSet>) {
self.chan.send(BeginDrawing(next_dt))
}
- fn draw(next_dt: pipes::Chan<LayerBufferSet>, draw_me: LayerBufferSet) {
+ fn draw(next_dt: comm::Chan<LayerBufferSet>, draw_me: LayerBufferSet) {
self.chan.send(Draw(next_dt, draw_me))
}
}
@@ -289,7 +289,7 @@ struct SurfaceSet {
mut back: Surface,
}
-fn lend_surface(surfaces: &SurfaceSet, receiver: pipes::Chan<LayerBufferSet>) {
+fn lend_surface(surfaces: &SurfaceSet, receiver: comm::Chan<LayerBufferSet>) {
// We are in a position to lend out the surface?
assert surfaces.front.have;
// Ok then take it
@@ -349,9 +349,9 @@ fn Surface(backend: BackendType) -> Surface {
/// A function for spawning into the platform's main thread
fn on_osmain<T: Owned>(f: fn~(po: Port<T>)) -> Chan<T> {
- let (setup_po, setup_ch) = pipes::stream();
+ let (setup_po, setup_ch) = comm::stream();
do task::task().sched_mode(task::PlatformThread).spawn {
- let (po, ch) = pipes::stream();
+ let (po, ch) = comm::stream();
setup_ch.send(ch);
f(po);
}
diff --git a/src/servo/platform/resize_rate_limiter.rs b/src/servo/platform/resize_rate_limiter.rs
index 9a680328f87..86de2b73b6a 100644
--- a/src/servo/platform/resize_rate_limiter.rs
+++ b/src/servo/platform/resize_rate_limiter.rs
@@ -9,14 +9,14 @@ use dom::event::{Event, ResizeEvent};
pub struct ResizeRateLimiter {
/// The channel we send resize events on
- /* priv */ dom_event_chan: pipes::SharedChan<Event>,
+ /* priv */ dom_event_chan: comm::SharedChan<Event>,
/// The port we are waiting on for a response to the last resize event
- /* priv */ mut last_response_port: Option<pipes::Port<()>>,
+ /* priv */ mut last_response_port: Option<comm::Port<()>>,
/// The next window resize event we should fire
/* priv */ mut next_resize_event: Option<(uint, uint)>
}
-pub fn ResizeRateLimiter(dom_event_chan: pipes::SharedChan<Event>) -> ResizeRateLimiter {
+pub fn ResizeRateLimiter(dom_event_chan: comm::SharedChan<Event>) -> ResizeRateLimiter {
ResizeRateLimiter {
dom_event_chan: dom_event_chan,
last_response_port: None,
@@ -59,7 +59,7 @@ impl ResizeRateLimiter {
}
priv fn send_event(width: uint, height: uint) {
- let (port, chan) = pipes::stream();
+ let (port, chan) = comm::stream();
self.dom_event_chan.send(ResizeEvent(width, height, chan));
self.last_response_port = Some(port);
}
diff --git a/src/servo/servo.rc b/src/servo/servo.rc
index e85289d7ab3..dde8b745e17 100755
--- a/src/servo/servo.rc
+++ b/src/servo/servo.rc
@@ -97,7 +97,7 @@ use engine::{Engine, ExitMsg, LoadURLMsg}; // FIXME: "ExitMsg" is pollution.
use platform::osmain::{AddKeyHandler, OSMain};
use core::option::swap_unwrap;
-use core::pipes::{Port, Chan};
+use core::comm::{Port, Chan};
pub use gfx::opts::{Opts, Png, Screen}; // FIXME: Do we really want "Screen" and "Png" visible?
pub use gfx::resource;
@@ -126,14 +126,14 @@ fn run(opts: &Opts) {
}
fn run_pipeline_screen(opts: &Opts) {
- let (dom_event_port, dom_event_chan) = pipes::stream();
- let dom_event_chan = pipes::SharedChan(dom_event_chan);
+ let (dom_event_port, dom_event_chan) = comm::stream();
+ let dom_event_chan = comm::SharedChan(dom_event_chan);
// The platform event handler thread
let osmain = OSMain(dom_event_chan.clone(), copy *opts);
// Send each file to render then wait for keypress
- let (keypress_from_osmain, keypress_to_engine) = pipes::stream();
+ let (keypress_from_osmain, keypress_to_engine) = comm::stream();
osmain.chan.send(AddKeyHandler(keypress_to_engine));
// Create a servo instance
@@ -160,7 +160,7 @@ fn run_pipeline_screen(opts: &Opts) {
// Shut everything down
debug!("master: Shut down");
- let (exit_response_from_engine, exit_chan) = pipes::stream();
+ let (exit_response_from_engine, exit_chan) = comm::stream();
engine_task.send(engine::ExitMsg(exit_chan));
exit_response_from_engine.recv();
@@ -181,8 +181,8 @@ fn run_pipeline_png(url: ~str, outfile: &str) {
use resource::image_cache_task::SyncImageCacheTask;
listen(|pngdata_from_compositor| {
- let (dom_event_port, dom_event_chan) = pipes::stream();
- let dom_event_chan = pipes::SharedChan(dom_event_chan);
+ let (dom_event_port, dom_event_chan) = comm::stream();
+ let dom_event_chan = comm::SharedChan(dom_event_chan);
let compositor = PngCompositor(pngdata_from_compositor);
let resource_task = ResourceTask();
@@ -201,7 +201,7 @@ fn run_pipeline_png(url: ~str, outfile: &str) {
Err(e) => fail!(e)
}
- let (exit_chan, exit_response_from_engine) = pipes::stream();
+ let (exit_chan, exit_response_from_engine) = comm::stream();
engine_task.send(engine::ExitMsg(exit_chan));
exit_response_from_engine.recv();
compositor.send(png_compositor::Exit);
diff --git a/src/servo/util/task.rs b/src/servo/util/task.rs
index 11fb6a2e38a..d133fc1ee14 100644
--- a/src/servo/util/task.rs
+++ b/src/servo/util/task.rs
@@ -1,12 +1,11 @@
-use core::pipes::{Chan, Port};
-use core::pipes;
+use core::comm::{Chan, Port};
use core::task;
use std::cell::Cell;
pub fn spawn_listener<A: Owned>(f: fn~(Port<A>)) -> Chan<A> {
- let (setup_po, setup_ch) = pipes::stream();
+ let (setup_po, setup_ch) = comm::stream();
do task::spawn {
- let (po, ch) = pipes::stream();
+ let (po, ch) = comm::stream();
setup_ch.send(ch);
f(po);
}
@@ -14,7 +13,7 @@ pub fn spawn_listener<A: Owned>(f: fn~(Port<A>)) -> Chan<A> {
}
pub fn spawn_conversation<A: Owned, B: Owned>(f: fn~(Port<A>, Chan<B>)) -> (Port<B>, Chan<A>) {
- let (from_child, to_parent) = pipes::stream();
+ let (from_child, to_parent) = comm::stream();
let to_parent = Cell(to_parent);
let to_child = do spawn_listener |from_parent| {
f(from_parent, to_parent.take())
diff --git a/src/servo/util/tree.rs b/src/servo/util/tree.rs
index ec2bc0826bc..afcf4461751 100644
--- a/src/servo/util/tree.rs
+++ b/src/servo/util/tree.rs
@@ -4,13 +4,13 @@ use core::vec;
//
// TODO: Use traits.
-pub type Tree<T> = {
+pub struct Tree<T> {
mut parent: Option<T>,
mut first_child: Option<T>,
mut last_child: Option<T>,
mut prev_sibling: Option<T>,
mut next_sibling: Option<T>
-};
+}
pub trait ReadMethods<T> {
fn with_tree_fields<R>(&T, f: fn(&Tree<T>) -> R) -> R;
@@ -59,11 +59,13 @@ pub fn parent<T:Copy,O:ReadMethods<T>>(ops: &O, node: &T) -> Option<T> {
}
pub fn empty<T>() -> Tree<T> {
- {mut parent: None,
- mut first_child: None,
- mut last_child: None,
- mut prev_sibling: None,
- mut next_sibling: None}
+ Tree {
+ mut parent: None,
+ mut first_child: None,
+ mut last_child: None,
+ mut prev_sibling: None,
+ mut next_sibling: None
+ }
}
pub fn add_child<T:Copy,O:WriteMethods<T>>(ops: &O, parent: T, child: T) {