diff options
author | bors-servo <release+servo@mozilla.com> | 2014-03-20 10:58:36 -0400 |
---|---|---|
committer | bors-servo <release+servo@mozilla.com> | 2014-03-20 10:58:36 -0400 |
commit | 831712206865e2c0516009b16e2ac60f754dd1a8 (patch) | |
tree | cd83699b72467929a42f98c75158104a4f860136 /src/components/script/dom/bindings/codegen | |
parent | 2fb8c84baceee09c2127898cd7f9d3a8e0011cce (diff) | |
parent | 0fccf5e386d2a7d98dfcbaf5b4871fd7d93e887d (diff) | |
download | servo-831712206865e2c0516009b16e2ac60f754dd1a8.tar.gz servo-831712206865e2c0516009b16e2ac60f754dd1a8.zip |
auto merge of #1864 : saneyuki/servo/split_cast_to, r=jdm
fix #1836
Diffstat (limited to 'src/components/script/dom/bindings/codegen')
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 0ba3de7e4cf..ff6c37fd78b 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -5793,9 +5793,16 @@ class GlobalGenRoots(): unsafe { derived.clone().transmute() } } - fn to<T: ${toBound}>(base: &JS<T>) -> JS<Self> { + fn to<T: ${toBound}>(base: &JS<T>) -> Option<JS<Self>> { + match base.get().${checkFn}() { + true => unsafe { Some(base.clone().transmute()) }, + false => None + } + } + + unsafe fn to_unchecked<T: ${toBound}>(base: &JS<T>) -> JS<Self> { assert!(base.get().${checkFn}()); - unsafe { base.clone().transmute() } + base.clone().transmute() } } ''').substitute({'checkFn': 'is_' + name.lower(), |