mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
css, sub: Don't copy so much
This commit is contained in:
parent
2a1e97c80f
commit
230ac2dd17
3 changed files with 16 additions and 12 deletions
|
@ -1 +1 @@
|
|||
Subproject commit 679e6319ab771b9b2a676f4be39e72aa7a8e7b8e
|
||||
Subproject commit b1ac22d98de7c6e622709ebd3ae2bd63a762b2b2
|
|
@ -1 +1 @@
|
|||
Subproject commit b23d902eccdae25fef9e71e6cc42c8d2b943f2ab
|
||||
Subproject commit d7b9920a1cd5b3a8ad383051c8ddce500e46ab23
|
|
@ -6,17 +6,17 @@ pub struct NodeSelectHandler {
|
|||
node: Node
|
||||
}
|
||||
|
||||
fn node_name(data: &NodeData) -> ~str {
|
||||
fn with_node_name<R>(data: &NodeData, f: &fn(&str) -> R) -> R {
|
||||
match *data.kind {
|
||||
Element(ref data) => copy data.tag_name,
|
||||
Element(ref data) => f(data.tag_name),
|
||||
_ => fail ~"attempting to style non-element node"
|
||||
}
|
||||
}
|
||||
|
||||
impl NodeSelectHandler: SelectHandler<Node> {
|
||||
fn node_name(node: &Node) -> ~str {
|
||||
fn with_node_name<R>(node: &Node, f: &fn(&str) -> R) -> R {
|
||||
do node.read |data| {
|
||||
node_name(data)
|
||||
with_node_name(data, f)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,10 +25,12 @@ impl NodeSelectHandler: SelectHandler<Node> {
|
|||
match parent {
|
||||
Some(parent) => {
|
||||
do parent.read |data| {
|
||||
if name == node_name(data) {
|
||||
Some(parent)
|
||||
} else {
|
||||
None
|
||||
do with_node_name(data) |node_name| {
|
||||
if name == node_name {
|
||||
Some(parent)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -49,8 +51,10 @@ impl NodeSelectHandler: SelectHandler<Node> {
|
|||
Some(parent) => {
|
||||
let mut found = false;
|
||||
do parent.read |data| {
|
||||
if name == node_name(data) {
|
||||
found = true;
|
||||
do with_node_name(data) |node_name| {
|
||||
if name == node_name {
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if found {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue