Change quadtree iterators

This commit is contained in:
eschweic 2013-08-20 12:47:08 -07:00
parent d92cbe6a51
commit 594246891d
2 changed files with 18 additions and 19 deletions

View file

@ -24,7 +24,6 @@ use extra::arc::Arc;
use servo_util::time::{ProfilerChan, profile}; use servo_util::time::{ProfilerChan, profile};
use servo_util::time; use servo_util::time;
use extra::arc;
use buffer_map::BufferMap; use buffer_map::BufferMap;

View file

@ -379,14 +379,14 @@ impl<T: Tile> QuadtreeNode<T> {
Some(old_tile) => ~[old_tile], Some(old_tile) => ~[old_tile],
None => ~[], None => ~[],
}; };
// FIXME: This should be inline, but currently won't compile for child in self.quadrants.mut_iter() {
let quads = [TL, TR, BL, BR]; match *child {
for &quad in quads.iter() { Some(ref mut node) => {
match self.quadrants[quad as int] { unused_tiles.push_all_move(node.collect_tiles());
Some(ref mut child) => unused_tiles.push_all_move(child.collect_tiles()), }
None => {} // Nothing to do None => {} // Nothing to do
} }
self.quadrants[quad as int] = None; *child = None;
} }
self.status = Normal; self.status = Normal;
(self.tile_mem as int - old_size as int, unused_tiles) (self.tile_mem as int - old_size as int, unused_tiles)
@ -569,14 +569,14 @@ impl<T: Tile> QuadtreeNode<T> {
let mut unused_tiles = ~[]; let mut unused_tiles = ~[];
if redisplay { if redisplay {
let old_mem = self.tile_mem; let old_mem = self.tile_mem;
// FIXME: This should be inline, but currently won't compile for child in self.quadrants.mut_iter() {
let quads = [TL, TR, BL, BR]; match *child {
for &quad in quads.iter() { Some(ref mut node) => {
match self.quadrants[quad as int] { unused_tiles.push_all_move(node.collect_tiles());
Some(ref mut child) => unused_tiles.push_all_move(child.collect_tiles()), }
None => {} // Nothing to do None => {} // Nothing to do
} }
self.quadrants[quad as int] = None; *child = None;
} }
self.tile_mem = tile.get_mem(); self.tile_mem = tile.get_mem();
delta = self.tile_mem as int - old_mem as int; delta = self.tile_mem as int - old_mem as int;
@ -679,11 +679,11 @@ impl<T: Tile> QuadtreeNode<T> {
Some(tile) => ~[tile], Some(tile) => ~[tile],
None => ~[], None => ~[],
}; };
for child in self.quadrants.mut_iter() {
let quadrants = [TL, TR, BL, BR]; match *child {
for &quad in quadrants.iter() { Some(ref mut node) => {
match self.quadrants[quad as int] { ret.push_all_move(node.collect_tiles());
Some(ref mut child) => ret.push_all_move(child.collect_tiles()), }
None => {} // Nothing to do None => {} // Nothing to do
} }
} }