Remove unsound Root::deref() calls in DOMParser::ParseFromString.

Note that Root::clone() calls through to JSRef::clone() due to autoderef.
This commit is contained in:
Ms2ger 2015-01-01 17:59:49 +01:00
parent ca9b5353d8
commit 6032a2f8af

View file

@ -47,22 +47,22 @@ impl<'a> DOMParserMethods for JSRef<'a, DOMParser> {
s: DOMString,
ty: DOMParserBinding::SupportedType)
-> Fallible<Temporary<Document>> {
let window = self.window.root().clone();
let url = window.get_url();
let window = self.window.root();
let url = window.r().get_url();
let content_type = DOMParserBinding::SupportedTypeValues::strings[ty as uint].into_string();
match ty {
Text_html => {
let document = Document::new(window, Some(url.clone()),
let document = Document::new(window.r(), Some(url.clone()),
IsHTMLDocument::HTMLDocument,
Some(content_type),
DocumentSource::FromParser).root().clone();
parse_html(document, HTMLInput::InputString(s), &url);
document.set_ready_state(DocumentReadyState::Complete);
Ok(Temporary::from_rooted(document))
DocumentSource::FromParser).root();
parse_html(document.r(), HTMLInput::InputString(s), &url);
document.r().set_ready_state(DocumentReadyState::Complete);
Ok(Temporary::from_rooted(document.r()))
}
Text_xml => {
//FIXME: this should probably be FromParser when we actually parse the string (#3756).
Ok(Document::new(window, Some(url.clone()),
Ok(Document::new(window.r(), Some(url.clone()),
IsHTMLDocument::NonHTMLDocument,
Some(content_type),
DocumentSource::NotFromParser))