aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2019-03-10 18:24:35 +0100
committerAnthony Ramine <n.oxyde@gmail.com>2019-03-10 18:24:35 +0100
commit1744a42dad62a4051ab56f109393850c8aafe961 (patch)
treee217d816f5e558c0618e85b189e5d51d95e34803 /components/script/dom/bindings/codegen/CodegenRust.py
parent5fe5e5d6debef5adf234b650ee1b758e683a5230 (diff)
downloadservo-1744a42dad62a4051ab56f109393850c8aafe961.tar.gz
servo-1744a42dad62a4051ab56f109393850c8aafe961.zip
Don't use RootedReference for Option<T> in codegen anymore
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 9c5e4864dab..3f15a316af3 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -7250,9 +7250,11 @@ def camel_to_upper_snake(s):
def process_arg(expr, arg):
if arg.type.isGeckoInterface() and not arg.type.unroll().inner.isCallback():
- if arg.variadic or arg.type.isSequence() or arg.type.nullable() and arg.optional:
+ if arg.variadic or arg.type.isSequence():
expr += ".r()"
- elif arg.type.nullable() or arg.optional:
+ elif arg.type.nullable() and arg.optional and not arg.defaultValue:
+ expr += ".as_ref().map(Option::deref)"
+ elif arg.type.nullable() or arg.optional and not arg.defaultValue:
expr += ".deref()"
else:
expr = "&" + expr