From 43429abce40d9a87fa271027094a36256909f3ee Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Thu, 13 Aug 2015 15:30:08 -0400 Subject: Avoid marking codegen method bodies as unsafe twice `CGAbstractMethod` takes a couple boolean parameters, among others: * `extern`: will mark the method as `unsafe` and `extern` * `unsafe`: will wrap the method body in an `unsafe` block Passing both as `True` should not mark it as `unsafe` twice. Example from a generated `HTMLCollectionBinding.rs`: Before: ``` unsafe extern fn get_length(..) -> u8 { unsafe { // code here } } ``` After ``` unsafe extern fn get_length(..) -> u8 { // code here } ``` --- components/script/dom/bindings/codegen/CodegenRust.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'components/script/dom/bindings/codegen/CodegenRust.py') diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index d6ca15dd546..e426d8a22c3 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -2089,7 +2089,9 @@ class CGAbstractMethod(CGThing): def define(self): body = self.definition_body() - if self.unsafe: + + # Method will already be marked `unsafe` if `self.extern == True` + if self.unsafe and not self.extern: body = CGWrapper(CGIndenter(body), pre="unsafe {\n", post="\n}") return CGWrapper(CGIndenter(body), -- cgit v1.2.3