From 3613e8f231a06142abb726a28bcd8847e768708c Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Tue, 14 Feb 2017 14:42:35 +0100 Subject: [PATCH] Implement JSTraceable for more types. --- components/script/dom/bindings/codegen/CodegenRust.py | 2 ++ components/script/dom/bindings/js.rs | 6 ++++++ components/script/dom/bindings/mozmap.rs | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index c47cf185bf25..444d52d3ae61 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4103,6 +4103,7 @@ def define(self): % (self.type, v["name"]) for v in templateVars ] return ("""\ +#[derive(JSTraceable)] pub enum %s { %s } @@ -5881,6 +5882,7 @@ def struct(self): for m in self.memberInfo] return (string.Template( + "#[derive(JSTraceable)]\n" "pub struct ${selfName} {\n" + "${inheritance}" + "\n".join(memberDecls) + "\n" + diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index bdd2b81ce376..e63177e3bd86 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -642,3 +642,9 @@ impl Drop for Root { } } } + +unsafe impl JSTraceable for Root { + unsafe fn trace(&self, _: *mut JSTracer) { + // Already traced. + } +} diff --git a/components/script/dom/bindings/mozmap.rs b/components/script/dom/bindings/mozmap.rs index 5ef102539b7c..abfedf02caf3 100644 --- a/components/script/dom/bindings/mozmap.rs +++ b/components/script/dom/bindings/mozmap.rs @@ -23,7 +23,7 @@ use std::collections::HashMap; use std::ops::Deref; /// The `MozMap` (open-ended dictionary) type. -#[derive(Clone)] +#[derive(Clone, JSTraceable)] pub struct MozMap { map: HashMap, }