diff options
-rw-r--r-- | components/script/dom/bindings/js.rs | 1 | ||||
-rw-r--r-- | components/script/dom/bindings/trace.rs | 1 | ||||
-rw-r--r-- | components/script/dom/element.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmlinputelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmllinkelement.rs | 6 | ||||
-rw-r--r-- | components/script/dom/node.rs | 2 | ||||
-rw-r--r-- | components/script/script_task.rs | 2 |
7 files changed, 8 insertions, 8 deletions
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index 347f32a266e..a6dc495fc04 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -577,6 +577,7 @@ impl<T: Assignable<U>, U: Reflectable> TemporaryPushable<T> for Vec<JS<U>> { /// /// See also [*Exact Stack Rooting - Storing a GCPointer on the CStack*] /// (https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Internals/GC/Exact_Stack_Rooting). +#[no_move] pub struct RootCollection { roots: UnsafeCell<RootedVec<*mut JSObject>>, } diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 05ee1f09a0a..c25b0addc47 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -401,6 +401,7 @@ impl VecRootableType for *mut JSObject { /// A vector of items that are rooted for the lifetime /// of this struct #[allow(unrooted_must_root)] +#[no_move] pub struct RootedVec<T> { v: Vec<T> } diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index ceabb4d212a..ae3c11c4079 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -728,7 +728,7 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { fn get_attributes(self, local_name: &Atom, attributes: &mut RootedVec<JS<Attr>>) { // FIXME(https://github.com/rust-lang/rust/issues/23338) let attrs = self.attrs.borrow(); - for attr in attrs.iter().map(|attr| attr.root()) { + for ref attr in attrs.iter().map(|attr| attr.root()) { // FIXME(https://github.com/rust-lang/rust/issues/23338) let attr = attr.r(); let attr_local_name = attr.local_name(); diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index ed62de4cddc..e8cad95a519 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -841,7 +841,7 @@ impl<'a> Activatable for JSRef<'a, HTMLInputElement> { .find(|r| r.r().form_owner() == owner); } match submit_button { - Some(button) => { + Some(ref button) => { if button.r().is_instance_activatable() { button.r().synthetic_click_activation(ctrlKey, shiftKey, altKey, metaKey) } diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 9b01480d39a..60e78b5bdad 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::Bindings::HTMLLinkElementBinding::HTMLLinkElementMet use dom::bindings::codegen::InheritTypes::HTMLLinkElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast}; use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary}; -use dom::bindings::js::OptionalRootable; +use dom::bindings::js::{OptionalRootable, RootedReference}; use dom::document::Document; use dom::domtokenlist::DOMTokenList; use dom::element::{AttributeHandlers, Element}; @@ -60,9 +60,7 @@ impl HTMLLinkElement { fn get_attr(element: JSRef<Element>, local_name: &Atom) -> Option<String> { let elem = element.get_attribute(&ns!(""), local_name).root(); - elem.as_ref().map(|e| { - // FIXME(https://github.com/rust-lang/rust/issues/23338) - let e = e.r(); + elem.r().map(|e| { let value = e.value(); (**value).to_owned() }) diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 25af75fb693..32c44277d10 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -298,7 +298,7 @@ impl<'a> PrivateNodeHelpers for JSRef<'a, Node> { } let parent = self.parent_node().root(); - parent.as_ref().map(|parent| vtable_for(&parent.r()).child_inserted(self)); + parent.r().map(|parent| vtable_for(&parent).child_inserted(self)); document.r().content_and_heritage_changed(self, NodeDamage::OtherNodeDamage); } diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 0fe875e1344..0fbdf0f5926 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -937,7 +937,7 @@ impl ScriptTask { self.find_iframe(doc.r(), old_subpage_id) }).root(); - frame_element.as_ref().unwrap().r().update_subpage_id(new_subpage_id); + frame_element.r().unwrap().update_subpage_id(new_subpage_id); } /// Handles a notification that reflow completed. |