diff options
Diffstat (limited to 'src/components/script/dom/bindings/node.rs')
-rw-r--r-- | src/components/script/dom/bindings/node.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/components/script/dom/bindings/node.rs b/src/components/script/dom/bindings/node.rs index cdc4c58bce0..8bf2ab8a565 100644 --- a/src/components/script/dom/bindings/node.rs +++ b/src/components/script/dom/bindings/node.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use dom::bindings::utils::{Reflectable, Reflector, Traceable}; +use dom::bindings::utils::{Reflectable, Reflector, Traceable, trace_reflector}; use dom::types::*; use dom::node::AbstractNode; @@ -23,7 +23,6 @@ impl Reflectable for AbstractNode { impl Traceable for Node { fn trace(&self, tracer: *mut JSTracer) { - #[fixed_stack_segment] fn trace_node(tracer: *mut JSTracer, node: Option<AbstractNode>, name: &str) { if node.is_none() { return; @@ -35,10 +34,10 @@ impl Traceable for Node { unsafe { (*tracer).debugPrinter = ptr::null(); (*tracer).debugPrintIndex = -1; - do name.to_c_str().with_ref |name| { + name.to_c_str().with_ref(|name| { (*tracer).debugPrintArg = name as *libc::c_void; JS_CallTracer(cast::transmute(tracer), obj, JSTRACE_OBJECT as u32); - } + }); } } debug!("tracing {:p}?:", self.reflector().get_jsobject()); @@ -47,5 +46,7 @@ impl Traceable for Node { trace_node(tracer, self.last_child, "last child"); trace_node(tracer, self.next_sibling, "next sibling"); trace_node(tracer, self.prev_sibling, "prev sibling"); + let owner_doc = self.owner_doc(); + trace_reflector(tracer, "document", owner_doc.reflector()); } } |