Ignore the HTML parser's borrow flag in GC tracing

Adds some other dynamic checks in debug builds.
This commit is contained in:
Keegan McAllister 2014-10-23 18:10:00 -07:00
parent 6ec0939a22
commit 49234484d6
5 changed files with 59 additions and 5 deletions

View file

@ -25,6 +25,8 @@ use encoding::types::{Encoding, DecodeReplace};
use servo_net::resource_task::{Load, LoadData, Payload, Done, ResourceTask, load_whole_resource};
use servo_msg::constellation_msg::LoadData as MsgLoadData;
use servo_util::task::spawn_named;
use servo_util::task_state;
use servo_util::task_state::InHTMLParser;
use servo_util::str::DOMString;
use std::ascii::StrAsciiExt;
use std::comm::{channel, Sender, Receiver};
@ -480,6 +482,8 @@ pub fn parse_html(page: &Page,
let parser = ServoHTMLParser::new(js_chan.clone(), base_url.clone(), document).root();
let parser: JSRef<ServoHTMLParser> = *parser;
task_state::enter(InHTMLParser);
match input {
InputString(s) => {
parser.tokenizer().borrow_mut().feed(s);
@ -512,6 +516,8 @@ pub fn parse_html(page: &Page,
parser.tokenizer().borrow_mut().end();
task_state::exit(InHTMLParser);
debug!("finished parsing");
js_chan.send(JSTaskExit);