aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2014-03-23 11:46:47 -0400
committerbors-servo <release+servo@mozilla.com>2014-03-23 11:46:47 -0400
commite67d8a4003738a95d769ee562b3d45de1be279c2 (patch)
tree3fabcd10eaf38b508e3ff975a35fb7c2d532efbe
parentde67069b0aad36301718e112e1f830ebc108be46 (diff)
parentcfb2af60d8d6fcb1dad2d949f9f32aa369919ed8 (diff)
downloadservo-e67d8a4003738a95d769ee562b3d45de1be279c2.tar.gz
servo-e67d8a4003738a95d769ee562b3d45de1be279c2.zip
auto merge of #1947 : saneyuki/servo/cast, r=jdm
follow up https://github.com/mozilla/servo/pull/1864#issuecomment-37109672
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index a422ee93a5b..ded87534683 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -5745,10 +5745,12 @@ class GlobalGenRoots():
derived += [CGGeneric('\n')]
cast = [CGGeneric(string.Template('''pub trait ${castTraitName} {
+ #[inline(always)]
fn from<T: ${fromBound}>(derived: &JS<T>) -> JS<Self> {
unsafe { derived.clone().transmute() }
}
+ #[inline(always)]
fn to<T: ${toBound}>(base: &JS<T>) -> Option<JS<Self>> {
match base.get().${checkFn}() {
true => unsafe { Some(base.clone().transmute()) },
@@ -5756,6 +5758,7 @@ class GlobalGenRoots():
}
}
+ #[inline(always)]
unsafe fn to_unchecked<T: ${toBound}>(base: &JS<T>) -> JS<Self> {
assert!(base.get().${checkFn}());
base.clone().transmute()