diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2019-03-10 13:20:07 +0100 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2019-03-10 17:51:35 +0100 |
commit | 5fe5e5d6debef5adf234b650ee1b758e683a5230 (patch) | |
tree | e4b761bb1bb074acbe6d580066ca54bd23a9c793 /components/script/dom/bindings | |
parent | 7bdfad92a5a2bf34fcabb38f99789b3f5d7989af (diff) | |
download | servo-5fe5e5d6debef5adf234b650ee1b758e683a5230.tar.gz servo-5fe5e5d6debef5adf234b650ee1b758e683a5230.zip |
Remove most RootedReference uses
We can replace all uses of RootedReference for Option<T> by Option::deref calls.
Diffstat (limited to 'components/script/dom/bindings')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 4 | ||||
-rw-r--r-- | components/script/dom/bindings/root.rs | 15 |
2 files changed, 3 insertions, 16 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index fe88275bf20..9c5e4864dab 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -7250,8 +7250,10 @@ def camel_to_upper_snake(s): def process_arg(expr, arg): if arg.type.isGeckoInterface() and not arg.type.unroll().inner.isCallback(): - if arg.type.nullable() or arg.type.isSequence() or arg.optional: + if arg.variadic or arg.type.isSequence() or arg.type.nullable() and arg.optional: expr += ".r()" + elif arg.type.nullable() or arg.optional: + expr += ".deref()" else: expr = "&" + expr elif isinstance(arg.type, IDLPromiseType): diff --git a/components/script/dom/bindings/root.rs b/components/script/dom/bindings/root.rs index 517593dbba7..9e158b450d8 100644 --- a/components/script/dom/bindings/root.rs +++ b/components/script/dom/bindings/root.rs @@ -42,7 +42,6 @@ use std::marker::PhantomData; use std::mem; use std::ops::Deref; use std::ptr; -use std::rc::Rc; use style::thread_state; /// A rooted value. @@ -272,13 +271,6 @@ impl<'root, T: DomObject + 'root> RootedReference<'root> for DomRoot<T> { } } -impl<'root, T: DomObject + 'root> RootedReference<'root> for Dom<T> { - type Ref = &'root T; - fn r(&'root self) -> &'root T { - &self - } -} - impl<'root, T: JSTraceable + DomObject + 'root> RootedReference<'root> for [Dom<T>] { type Ref = &'root [&'root T]; fn r(&'root self) -> &'root [&'root T] { @@ -286,13 +278,6 @@ impl<'root, T: JSTraceable + DomObject + 'root> RootedReference<'root> for [Dom< } } -impl<'root, T: DomObject + 'root> RootedReference<'root> for Rc<T> { - type Ref = &'root T; - fn r(&'root self) -> &'root T { - self - } -} - impl<'root, T: RootedReference<'root> + 'root> RootedReference<'root> for Option<T> { type Ref = Option<T::Ref>; fn r(&'root self) -> Option<T::Ref> { |