Remove unnecessary copying in hubbub parser

This commit is contained in:
ILyoan 2013-05-03 11:46:28 +09:00
parent 70b39cceec
commit 4452d1943b

View file

@ -260,20 +260,14 @@ pub fn parse_html(url: Url,
}, },
create_doctype: |doctype: ~hubbub::Doctype| { create_doctype: |doctype: ~hubbub::Doctype| {
debug!("create doctype"); debug!("create doctype");
// TODO: remove copying here by using struct pattern matching to let ~hubbub::Doctype {name: name,
// move all ~strs at once (blocked on Rust #3845, #3846, #3847) public_id: public_id,
let public_id = match &doctype.public_id { system_id: system_id,
&None => None, force_quirks: force_quirks } = doctype;
&Some(ref id) => Some(copy *id) let node = ~Doctype::new(name,
};
let system_id = match &doctype.system_id {
&None => None,
&Some(ref id) => Some(copy *id)
};
let node = ~Doctype::new(copy doctype.name,
public_id, public_id,
system_id, system_id,
doctype.force_quirks); force_quirks);
unsafe { unsafe {
Node::as_abstract_node(node).to_hubbub_node() Node::as_abstract_node(node).to_hubbub_node()
} }