mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Convert NodeRange to a struct with a static new() function.
This commit is contained in:
parent
8ea5c64bd0
commit
ee47778bd5
2 changed files with 16 additions and 9 deletions
|
@ -10,7 +10,7 @@ use layout::block::BlockFlowData;
|
|||
use layout::box::{LogicalBefore, LogicalAfter, RenderBox};
|
||||
use layout::context::LayoutContext;
|
||||
use layout::debug::BoxedDebugMethods;
|
||||
use layout::inline::InlineFlowData;
|
||||
use layout::inline::{InlineFlowData, NodeRange};
|
||||
use layout::root::RootFlowData;
|
||||
use util::range::{Range, MutableRange};
|
||||
use util::tree;
|
||||
|
@ -179,11 +179,9 @@ impl BoxConsumer {
|
|||
// only create NodeRanges for non-leaf nodes.
|
||||
let final_span_length = self.flow.inline().boxes.len() - entry.start_idx + 1;
|
||||
assert final_span_length > 1;
|
||||
let mapping = { node: copy box.d().node,
|
||||
range: MutableRange(entry.start_idx, final_span_length)
|
||||
};
|
||||
debug!("BoxConsumer: adding element range=%?", mapping.range);
|
||||
self.flow.inline().elems.push(move mapping);
|
||||
let new_range = Range(entry.start_idx, final_span_length);
|
||||
debug!("BoxConsumer: adding element range=%?", new_range);
|
||||
self.flow.inline().elems.push(NodeRange::new(copy box.d().node, move new_range));
|
||||
},
|
||||
@BlockFlow(*) => {
|
||||
assert self.stack.len() == 0;
|
||||
|
|
|
@ -41,7 +41,16 @@ serve as the starting point, but the current design doesn't make it
|
|||
hard to try out that alternative.
|
||||
*/
|
||||
|
||||
type NodeRange = {node: Node, range: MutableRange};
|
||||
struct NodeRange {
|
||||
node: Node,
|
||||
mut range: Range,
|
||||
}
|
||||
|
||||
impl NodeRange {
|
||||
static pure fn new(node: Node, range: Range) -> NodeRange {
|
||||
NodeRange { node: node, range: range }
|
||||
}
|
||||
}
|
||||
|
||||
// stack-allocated object for scanning an inline flow into
|
||||
// TextRun-containing TextBoxes.
|
||||
|
@ -305,7 +314,7 @@ impl LineboxScanner {
|
|||
while repair_stack.len() > 0 && old_i == elems[repair_stack.last().elem_idx].range.end() {
|
||||
let item = repair_stack.pop();
|
||||
debug!("Set range for %u to %?", item.elem_idx, Range(item.begin_idx, new_j));
|
||||
elems[item.elem_idx].range.reset(item.begin_idx, new_j);
|
||||
elems[item.elem_idx].range = Range(item.begin_idx, new_j);
|
||||
}
|
||||
old_i += 1;
|
||||
}
|
||||
|
@ -314,7 +323,7 @@ impl LineboxScanner {
|
|||
while repair_stack.len() > 0 && old_i == elems[repair_stack.last().elem_idx].range.end() {
|
||||
let item = repair_stack.pop();
|
||||
debug!("Set range for %u to %?", item.elem_idx, Range(item.begin_idx, new_j));
|
||||
elems[item.elem_idx].range.reset(item.begin_idx, new_j);
|
||||
elems[item.elem_idx].range = Range(item.begin_idx, new_j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue