diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 12 | ||||
-rw-r--r-- | components/script/dom/element.rs | 5 | ||||
-rw-r--r-- | components/script/dom/htmlelement.rs | 5 | ||||
-rw-r--r-- | components/script/dom/node.rs | 5 | ||||
-rw-r--r-- | components/script/dom/uievent.rs | 5 |
5 files changed, 9 insertions, 23 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 9a2cb83bcb1..fbb67e5bb9e 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -5185,7 +5185,8 @@ class GlobalGenRoots(): CGGeneric("use dom::bindings::js::{JS, JSRef, Temporary};\n"), CGGeneric("use dom::bindings::trace::JSTraceable;\n"), CGGeneric("use dom::bindings::utils::Reflectable;\n"), - CGGeneric("use js::jsapi::JSTracer;\n\n")] + CGGeneric("use js::jsapi::JSTracer;\n\n"), + CGGeneric("use std::mem;\n\n")] for descriptor in descriptors: name = descriptor.name protos = [CGGeneric('pub trait %s {}\n' % (name + 'Base'))] @@ -5199,13 +5200,13 @@ class GlobalGenRoots(): delegate = string.Template('''impl ${selfName} for ${baseName} { #[inline] fn ${fname}(&self) -> bool { - self.${parentName}().${fname}() + ${parentName}Cast::from_actual(self).${fname}() } } ''').substitute({'fname': 'is_' + name.lower(), 'selfName': name + 'Derived', 'baseName': protoDescriptor.concreteType, - 'parentName': protoDescriptor.prototypeChain[-2].lower()}) + 'parentName': protoDescriptor.prototypeChain[-2]}) derived += [CGGeneric(delegate)] derived += [CGGeneric('\n')] @@ -5251,6 +5252,11 @@ class GlobalGenRoots(): fn from_temporary<T: ${fromBound}+Reflectable>(derived: Temporary<T>) -> Temporary<Self> { unsafe { derived.transmute() } } + + #[inline(always)] + fn from_actual<'a, T: ${fromBound}+Reflectable>(derived: &T) -> &'a Self { + unsafe { mem::transmute(derived) } + } } ''').substitute({'checkFn': 'is_' + name.lower(), 'castTraitName': name + 'Cast', diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index b6da0dc39b1..79ecfe93743 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -184,11 +184,6 @@ impl Element { } #[inline] - pub fn node<'a>(&'a self) -> &'a Node { - &self.node - } - - #[inline] pub fn local_name<'a>(&'a self) -> &'a Atom { &self.local_name } diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index 7052fb873ad..75ad910ee2e 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -50,11 +50,6 @@ impl HTMLElement { let element = HTMLElement::new_inherited(HTMLElementTypeId, localName, prefix, document); Node::reflect_node(box element, document, HTMLElementBinding::Wrap) } - - #[inline] - pub fn element<'a>(&'a self) -> &'a Element { - &self.element - } } trait PrivateHTMLElementHelpers { diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index a1d724e2a88..f1185d73fe6 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1150,11 +1150,6 @@ impl Node { } #[inline] - pub fn eventtarget<'a>(&'a self) -> &'a EventTarget { - &self.eventtarget - } - - #[inline] pub fn layout_data(&self) -> Ref<Option<LayoutData>> { self.layout_data.borrow() } diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs index 036de7bfb64..ccd95eea81e 100644 --- a/components/script/dom/uievent.rs +++ b/components/script/dom/uievent.rs @@ -66,11 +66,6 @@ impl UIEvent { init.view.root_ref(), init.detail); Ok(event) } - - #[inline] - pub fn event<'a>(&'a self) -> &'a Event { - &self.event - } } impl<'a> UIEventMethods for JSRef<'a, UIEvent> { |