mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
~[] to Vec in main/constellation.rs
This commit is contained in:
parent
7073f3b645
commit
6522e7827d
1 changed files with 16 additions and 16 deletions
|
@ -44,7 +44,7 @@ pub struct Constellation {
|
||||||
pub pipelines: HashMap<PipelineId, Rc<Pipeline>>,
|
pub pipelines: HashMap<PipelineId, Rc<Pipeline>>,
|
||||||
navigation_context: NavigationContext,
|
navigation_context: NavigationContext,
|
||||||
next_pipeline_id: PipelineId,
|
next_pipeline_id: PipelineId,
|
||||||
pending_frames: ~[FrameChange],
|
pending_frames: Vec<FrameChange>,
|
||||||
pending_sizes: HashMap<(PipelineId, SubpageId), Rect<f32>>,
|
pending_sizes: HashMap<(PipelineId, SubpageId), Rect<f32>>,
|
||||||
pub profiler_chan: ProfilerChan,
|
pub profiler_chan: ProfilerChan,
|
||||||
pub window_size: Size2D<uint>,
|
pub window_size: Size2D<uint>,
|
||||||
|
@ -55,7 +55,7 @@ pub struct Constellation {
|
||||||
struct FrameTree {
|
struct FrameTree {
|
||||||
pub pipeline: Rc<Pipeline>,
|
pub pipeline: Rc<Pipeline>,
|
||||||
pub parent: RefCell<Option<Rc<Pipeline>>>,
|
pub parent: RefCell<Option<Rc<Pipeline>>>,
|
||||||
pub children: RefCell<~[ChildFrameTree]>,
|
pub children: RefCell<Vec<ChildFrameTree>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ChildFrameTree {
|
struct ChildFrameTree {
|
||||||
|
@ -158,7 +158,7 @@ impl Iterator<Rc<FrameTree>> for FrameTreeIterator {
|
||||||
fn next(&mut self) -> Option<Rc<FrameTree>> {
|
fn next(&mut self) -> Option<Rc<FrameTree>> {
|
||||||
if !self.stack.is_empty() {
|
if !self.stack.is_empty() {
|
||||||
let next = self.stack.pop();
|
let next = self.stack.pop();
|
||||||
for cft in next.get_ref().children.borrow().rev_iter() {
|
for cft in next.get_ref().children.borrow().iter() {
|
||||||
self.stack.push(cft.frame_tree.clone());
|
self.stack.push(cft.frame_tree.clone());
|
||||||
}
|
}
|
||||||
Some(next.unwrap())
|
Some(next.unwrap())
|
||||||
|
@ -177,16 +177,16 @@ struct FrameChange {
|
||||||
|
|
||||||
/// Stores the Id's of the pipelines previous and next in the browser's history
|
/// Stores the Id's of the pipelines previous and next in the browser's history
|
||||||
struct NavigationContext {
|
struct NavigationContext {
|
||||||
pub previous: ~[Rc<FrameTree>],
|
pub previous: Vec<Rc<FrameTree>>,
|
||||||
pub next: ~[Rc<FrameTree>],
|
pub next: Vec<Rc<FrameTree>>,
|
||||||
pub current: Option<Rc<FrameTree>>,
|
pub current: Option<Rc<FrameTree>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl NavigationContext {
|
impl NavigationContext {
|
||||||
fn new() -> NavigationContext {
|
fn new() -> NavigationContext {
|
||||||
NavigationContext {
|
NavigationContext {
|
||||||
previous: ~[],
|
previous: Vec::new(),
|
||||||
next: ~[],
|
next: Vec::new(),
|
||||||
current: None,
|
current: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -209,9 +209,9 @@ impl NavigationContext {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Loads a new set of page frames, returning all evicted frame trees
|
/// Loads a new set of page frames, returning all evicted frame trees
|
||||||
fn load(&mut self, frame_tree: Rc<FrameTree>) -> ~[Rc<FrameTree>] {
|
fn load(&mut self, frame_tree: Rc<FrameTree>) -> Vec<Rc<FrameTree>> {
|
||||||
debug!("navigating to {:?}", frame_tree.pipeline.id);
|
debug!("navigating to {:?}", frame_tree.pipeline.id);
|
||||||
let evicted = replace(&mut self.next, ~[]);
|
let evicted = replace(&mut self.next, Vec::new());
|
||||||
if self.current.is_some() {
|
if self.current.is_some() {
|
||||||
self.previous.push(self.current.take_unwrap());
|
self.previous.push(self.current.take_unwrap());
|
||||||
}
|
}
|
||||||
|
@ -265,7 +265,7 @@ impl Constellation {
|
||||||
pipelines: HashMap::new(),
|
pipelines: HashMap::new(),
|
||||||
navigation_context: NavigationContext::new(),
|
navigation_context: NavigationContext::new(),
|
||||||
next_pipeline_id: PipelineId(0),
|
next_pipeline_id: PipelineId(0),
|
||||||
pending_frames: ~[],
|
pending_frames: Vec::new(),
|
||||||
pending_sizes: HashMap::new(),
|
pending_sizes: HashMap::new(),
|
||||||
profiler_chan: profiler_chan,
|
profiler_chan: profiler_chan,
|
||||||
window_size: Size2D(800u, 600u),
|
window_size: Size2D(800u, 600u),
|
||||||
|
@ -410,7 +410,7 @@ impl Constellation {
|
||||||
});
|
});
|
||||||
idx.map(|idx| {
|
idx.map(|idx| {
|
||||||
debug!("removing pending frame change for failed pipeline");
|
debug!("removing pending frame change for failed pipeline");
|
||||||
force_pipeline_exit(&self.pending_frames[idx].after.pipeline);
|
force_pipeline_exit(&self.pending_frames.get(idx).after.pipeline);
|
||||||
self.pending_frames.remove(idx)
|
self.pending_frames.remove(idx)
|
||||||
});
|
});
|
||||||
if idx.is_none() {
|
if idx.is_none() {
|
||||||
|
@ -438,7 +438,7 @@ impl Constellation {
|
||||||
after: Rc::new(FrameTree {
|
after: Rc::new(FrameTree {
|
||||||
pipeline: pipeline_wrapped.clone(),
|
pipeline: pipeline_wrapped.clone(),
|
||||||
parent: RefCell::new(None),
|
parent: RefCell::new(None),
|
||||||
children: RefCell::new(~[]),
|
children: RefCell::new(Vec::new()),
|
||||||
}),
|
}),
|
||||||
navigation_type: constellation_msg::Load,
|
navigation_type: constellation_msg::Load,
|
||||||
});
|
});
|
||||||
|
@ -464,7 +464,7 @@ impl Constellation {
|
||||||
after: Rc::new(FrameTree {
|
after: Rc::new(FrameTree {
|
||||||
pipeline: pipeline_wrapped.clone(),
|
pipeline: pipeline_wrapped.clone(),
|
||||||
parent: RefCell::new(None),
|
parent: RefCell::new(None),
|
||||||
children: RefCell::new(~[]),
|
children: RefCell::new(Vec::new()),
|
||||||
}),
|
}),
|
||||||
navigation_type: constellation_msg::Load,
|
navigation_type: constellation_msg::Load,
|
||||||
});
|
});
|
||||||
|
@ -611,7 +611,7 @@ impl Constellation {
|
||||||
frame_tree: Rc::new(FrameTree {
|
frame_tree: Rc::new(FrameTree {
|
||||||
pipeline: pipeline_wrapped.clone(),
|
pipeline: pipeline_wrapped.clone(),
|
||||||
parent: RefCell::new(Some(source_pipeline.clone())),
|
parent: RefCell::new(Some(source_pipeline.clone())),
|
||||||
children: RefCell::new(~[]),
|
children: RefCell::new(Vec::new()),
|
||||||
}),
|
}),
|
||||||
rect: rect,
|
rect: rect,
|
||||||
});
|
});
|
||||||
|
@ -664,7 +664,7 @@ impl Constellation {
|
||||||
after: Rc::new(FrameTree {
|
after: Rc::new(FrameTree {
|
||||||
pipeline: pipeline_wrapped.clone(),
|
pipeline: pipeline_wrapped.clone(),
|
||||||
parent: parent,
|
parent: parent,
|
||||||
children: RefCell::new(~[]),
|
children: RefCell::new(Vec::new()),
|
||||||
}),
|
}),
|
||||||
navigation_type: constellation_msg::Load,
|
navigation_type: constellation_msg::Load,
|
||||||
});
|
});
|
||||||
|
@ -848,7 +848,7 @@ impl Constellation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_evicted_frames(&mut self, evicted: ~[Rc<FrameTree>]) {
|
fn handle_evicted_frames(&mut self, evicted: Vec<Rc<FrameTree>>) {
|
||||||
for frame_tree in evicted.iter() {
|
for frame_tree in evicted.iter() {
|
||||||
if !self.navigation_context.contains(frame_tree.pipeline.id) {
|
if !self.navigation_context.contains(frame_tree.pipeline.id) {
|
||||||
self.close_pipelines(frame_tree.clone());
|
self.close_pipelines(frame_tree.clone());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue