diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2016-05-13 14:20:00 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-10-11 19:44:32 +0200 |
commit | 0b3ab875f4c99f63d6caa9be528890ad98b1b2b7 (patch) | |
tree | 4139e748dd73a729f5a84c277e90f3f15e0df85a /components/script/dom/bindings/codegen/CodegenRust.py | |
parent | 51bcf516c831f60a6fc05d970df5fad99730558e (diff) | |
download | servo-0b3ab875f4c99f63d6caa9be528890ad98b1b2b7.tar.gz servo-0b3ab875f4c99f63d6caa9be528890ad98b1b2b7.zip |
Remove intrinsic Root::r()
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index d4c12f8c2ae..e66ff0ab858 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -3256,12 +3256,7 @@ class CGPerSignatureCall(CGThing): return "argc" def getArguments(self): - def process(arg, i): - argVal = "arg" + str(i) - if arg.type.isGeckoInterface() and not arg.type.unroll().inner.isCallback(): - argVal += ".r()" - return argVal - return [(a, process(a, i)) for (i, a) in enumerate(self.arguments)] + return [(a, process_arg("arg" + str(i), a)) for (i, a) in enumerate(self.arguments)] def isFallible(self): return 'infallible' not in self.extendedAttributes @@ -4651,12 +4646,7 @@ class CGProxySpecialOperation(CGPerSignatureCall): self.cgRoot.prepend(CGGeneric("rooted!(in(cx) let value = desc.value);")) def getArguments(self): - def process(arg): - argVal = arg.identifier.name - if arg.type.isGeckoInterface() and not arg.type.unroll().inner.isCallback(): - argVal += ".r()" - return argVal - args = [(a, process(a)) for a in self.arguments] + args = [(a, process_arg(a.identifier.name, a)) for a in self.arguments] return args def wrap_return_value(self): @@ -6775,6 +6765,15 @@ def camel_to_upper_snake(s): return "_".join(m.group(0).upper() for m in re.finditer("[A-Z][a-z]*", 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: + expr += ".r()" + else: + expr = "&" + expr + return expr + + class GlobalGenRoots(): """ Roots for global codegen. |