aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/bindings/node.rs')
-rw-r--r--src/components/script/dom/bindings/node.rs9
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());
}
}