mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Move CustomTraceable to script_bindings. (#35988)
* script: Move CustomTraceable to script_bindings. Signed-off-by: Josh Matthews <josh@joshmatthews.net> * script: Move record binding support to script_bindings. Signed-off-by: Josh Matthews <josh@joshmatthews.net> * Address clippy warnings. Signed-off-by: Josh Matthews <josh@joshmatthews.net> --------- Signed-off-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
parent
d35da38a2f
commit
c8d8787959
15 changed files with 340 additions and 277 deletions
|
@ -12,14 +12,13 @@ use html5ever::buffer_queue::BufferQueue;
|
|||
use html5ever::serialize::TraversalScope::IncludeNode;
|
||||
use html5ever::serialize::{AttrRef, Serialize, Serializer, TraversalScope};
|
||||
use html5ever::tokenizer::{Tokenizer as HtmlTokenizer, TokenizerOpts, TokenizerResult};
|
||||
use html5ever::tree_builder::{Tracer as HtmlTracer, TreeBuilder, TreeBuilderOpts};
|
||||
use js::jsapi::JSTracer;
|
||||
use html5ever::tree_builder::{TreeBuilder, TreeBuilderOpts};
|
||||
use script_bindings::trace::CustomTraceable;
|
||||
use servo_url::ServoUrl;
|
||||
|
||||
use crate::dom::bindings::codegen::Bindings::HTMLTemplateElementBinding::HTMLTemplateElementMethods;
|
||||
use crate::dom::bindings::inheritance::{Castable, CharacterDataTypeId, NodeTypeId};
|
||||
use crate::dom::bindings::root::{Dom, DomRoot};
|
||||
use crate::dom::bindings::trace::{CustomTraceable, JSTraceable};
|
||||
use crate::dom::characterdata::CharacterData;
|
||||
use crate::dom::document::Document;
|
||||
use crate::dom::documentfragment::DocumentFragment;
|
||||
|
@ -103,28 +102,6 @@ impl Tokenizer {
|
|||
}
|
||||
}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
unsafe impl CustomTraceable for HtmlTokenizer<TreeBuilder<Dom<Node>, Sink>> {
|
||||
unsafe fn trace(&self, trc: *mut JSTracer) {
|
||||
struct Tracer(*mut JSTracer);
|
||||
let tracer = Tracer(trc);
|
||||
|
||||
impl HtmlTracer for Tracer {
|
||||
type Handle = Dom<Node>;
|
||||
#[cfg_attr(crown, allow(crown::unrooted_must_root))]
|
||||
fn trace_handle(&self, node: &Dom<Node>) {
|
||||
unsafe {
|
||||
node.trace(self.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let tree_builder = &self.sink;
|
||||
tree_builder.trace_handles(&tracer);
|
||||
tree_builder.sink.trace(trc);
|
||||
}
|
||||
}
|
||||
|
||||
fn start_element<S: Serializer>(node: &Element, serializer: &mut S) -> io::Result<()> {
|
||||
let name = QualName::new(None, node.namespace().clone(), node.local_name().clone());
|
||||
let attrs = node
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue