mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
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:
commit
0e14745762
2 changed files with 16 additions and 7 deletions
|
@ -228,7 +228,7 @@ impl TextRunScanner {
|
||||||
|
|
||||||
debug!("--- Elem ranges: ---");
|
debug!("--- Elem ranges: ---");
|
||||||
for (i, nr) in inline.elems.eachi() {
|
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!("--------------------");
|
debug!("--------------------");
|
||||||
|
|
||||||
|
|
|
@ -18,12 +18,12 @@ use style::{ComputedValues, PropertyDeclaration};
|
||||||
|
|
||||||
/// A range of nodes.
|
/// A range of nodes.
|
||||||
pub struct NodeRange {
|
pub struct NodeRange {
|
||||||
node: AbstractNode<LayoutView>,
|
node: OpaqueNode,
|
||||||
range: Range,
|
range: Range,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl NodeRange {
|
impl NodeRange {
|
||||||
pub fn new(node: AbstractNode<LayoutView>, range: &Range) -> NodeRange {
|
pub fn new(node: OpaqueNode, range: &Range) -> NodeRange {
|
||||||
NodeRange {
|
NodeRange {
|
||||||
node: node,
|
node: node,
|
||||||
range: (*range).clone()
|
range: (*range).clone()
|
||||||
|
@ -37,10 +37,12 @@ struct ElementMapping {
|
||||||
|
|
||||||
impl ElementMapping {
|
impl ElementMapping {
|
||||||
pub fn new() -> 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))
|
self.entries.push(NodeRange::new(node, range))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +76,7 @@ impl ElementMapping {
|
||||||
|
|
||||||
debug!("--- Elem ranges before repair: ---");
|
debug!("--- Elem ranges before repair: ---");
|
||||||
for (i, nr) in entries.iter().enumerate() {
|
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!("----------------------------------");
|
debug!("----------------------------------");
|
||||||
|
|
||||||
|
@ -116,7 +118,7 @@ impl ElementMapping {
|
||||||
}
|
}
|
||||||
debug!("--- Elem ranges after repair: ---");
|
debug!("--- Elem ranges after repair: ---");
|
||||||
for (i, nr) in entries.iter().enumerate() {
|
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!("----------------------------------");
|
debug!("----------------------------------");
|
||||||
}
|
}
|
||||||
|
@ -213,5 +215,12 @@ impl OpaqueNode {
|
||||||
pub unsafe fn to_node<T>(&self) -> AbstractNode<T> {
|
pub unsafe fn to_node<T>(&self) -> AbstractNode<T> {
|
||||||
cast::transmute(**self)
|
cast::transmute(**self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the address of this node, for debugging purposes.
|
||||||
|
pub fn id(&self) -> uintptr_t {
|
||||||
|
unsafe {
|
||||||
|
cast::transmute_copy(self)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue