aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2019-03-10 13:20:07 +0100
committerAnthony Ramine <n.oxyde@gmail.com>2019-03-10 17:51:35 +0100
commit5fe5e5d6debef5adf234b650ee1b758e683a5230 (patch)
treee4b761bb1bb074acbe6d580066ca54bd23a9c793 /components/script/dom/bindings
parent7bdfad92a5a2bf34fcabb38f99789b3f5d7989af (diff)
downloadservo-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.py4
-rw-r--r--components/script/dom/bindings/root.rs15
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> {