diff options
Diffstat (limited to 'components/script/dom/bindings')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 6 |
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)) |