mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35: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
|
node: Node
|
||||||
}
|
}
|
||||||
|
|
||||||
fn node_name(data: &NodeData) -> ~str {
|
fn with_node_name<R>(data: &NodeData, f: &fn(&str) -> R) -> R {
|
||||||
match *data.kind {
|
match *data.kind {
|
||||||
Element(ref data) => copy data.tag_name,
|
Element(ref data) => f(data.tag_name),
|
||||||
_ => fail ~"attempting to style non-element node"
|
_ => fail ~"attempting to style non-element node"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl NodeSelectHandler: SelectHandler<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| {
|
do node.read |data| {
|
||||||
node_name(data)
|
with_node_name(data, f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,10 +25,12 @@ impl NodeSelectHandler: SelectHandler<Node> {
|
||||||
match parent {
|
match parent {
|
||||||
Some(parent) => {
|
Some(parent) => {
|
||||||
do parent.read |data| {
|
do parent.read |data| {
|
||||||
if name == node_name(data) {
|
do with_node_name(data) |node_name| {
|
||||||
Some(parent)
|
if name == node_name {
|
||||||
} else {
|
Some(parent)
|
||||||
None
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,8 +51,10 @@ impl NodeSelectHandler: SelectHandler<Node> {
|
||||||
Some(parent) => {
|
Some(parent) => {
|
||||||
let mut found = false;
|
let mut found = false;
|
||||||
do parent.read |data| {
|
do parent.read |data| {
|
||||||
if name == node_name(data) {
|
do with_node_name(data) |node_name| {
|
||||||
found = true;
|
if name == node_name {
|
||||||
|
found = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if found {
|
if found {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue