auto merge of #1426 : pcwalton/servo/opaque-node-range, r=larsbergstrom

These were stored in inline flows. This was caught by my WIP changes to
harden layout (yay for Rust!)

r? @larsbergstrom
This commit is contained in:
bors-servo 2013-12-17 10:01:21 -08:00
commit 0e14745762
2 changed files with 16 additions and 7 deletions

View file

@ -228,7 +228,7 @@ impl TextRunScanner {
debug!("--- Elem ranges: ---");
for (i, nr) in inline.elems.eachi() {
debug!("{:u}: {} --> {:s}", i, nr.range, nr.node.debug_str()); ()
debug!("{:u}: {} --> {:?}", i, nr.range, nr.node.id()); ()
}
debug!("--------------------");

View file

@ -18,12 +18,12 @@ use style::{ComputedValues, PropertyDeclaration};
/// A range of nodes.
pub struct NodeRange {
node: AbstractNode<LayoutView>,
node: OpaqueNode,
range: Range,
}
impl NodeRange {
pub fn new(node: AbstractNode<LayoutView>, range: &Range) -> NodeRange {
pub fn new(node: OpaqueNode, range: &Range) -> NodeRange {
NodeRange {
node: node,
range: (*range).clone()
@ -37,10 +37,12 @@ struct ElementMapping {
impl ElementMapping {
pub fn new() -> ElementMapping {
ElementMapping { entries: ~[] }
ElementMapping {
entries: ~[],
}
}
pub fn add_mapping(&mut self, node: AbstractNode<LayoutView>, range: &Range) {
pub fn add_mapping(&mut self, node: OpaqueNode, range: &Range) {
self.entries.push(NodeRange::new(node, range))
}
@ -74,7 +76,7 @@ impl ElementMapping {
debug!("--- Elem ranges before repair: ---");
for (i, nr) in entries.iter().enumerate() {
debug!("{:u}: {} --> {:s}", i, nr.range, nr.node.debug_str());
debug!("{:u}: {} --> {:?}", i, nr.range, nr.node.id());
}
debug!("----------------------------------");
@ -116,7 +118,7 @@ impl ElementMapping {
}
debug!("--- Elem ranges after repair: ---");
for (i, nr) in entries.iter().enumerate() {
debug!("{:u}: {} --> {:s}", i, nr.range, nr.node.debug_str());
debug!("{:u}: {} --> {:?}", i, nr.range, nr.node.id());
}
debug!("----------------------------------");
}
@ -213,5 +215,12 @@ impl OpaqueNode {
pub unsafe fn to_node<T>(&self) -> AbstractNode<T> {
cast::transmute(**self)
}
/// Returns the address of this node, for debugging purposes.
pub fn id(&self) -> uintptr_t {
unsafe {
cast::transmute_copy(self)
}
}
}