aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-08-13 15:00:37 -0600
committerbors-servo <metajack+bors@gmail.com>2015-08-13 15:00:37 -0600
commit289decb064b44937f570fdc299de9af961296dd6 (patch)
tree2aee641cad3de725c3358364e3bb33bb8ada9a24 /components/script
parent07716780fc805aea63285337ee15e9e56acb47c7 (diff)
parent43429abce40d9a87fa271027094a36256909f3ee (diff)
downloadservo-289decb064b44937f570fdc299de9af961296dd6.tar.gz
servo-289decb064b44937f570fdc299de9af961296dd6.zip
Auto merge of #7196 - frewsxcv:double-unsafe, r=jdm
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 } ``` <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7196) <!-- Reviewable:end -->
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py4
1 files changed, 3 insertions, 1 deletions
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),