aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 24054de8e95..6e0632fe97d 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -418,11 +418,15 @@ class CGMethodCall(CGThing):
template = info.template
declType = info.declType
+ argName = "arg%d" % distinguishingIndex
+
testCode = instantiateJSToNativeConversionTemplate(
template,
{"val": distinguishingArg},
declType,
- "arg%d" % distinguishingIndex)
+ argName)
+ if type_needs_auto_root(type):
+ testCode.append(CGGeneric("auto_root!(in(cx) let %s = %s);" % (argName, argName)))
# Indent by 4, since we need to indent further than our "do" statement
caseBody.append(CGIndenter(testCode, 4))