diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/root.rs | 5 | ||||
-rw-r--r-- | components/script/dom/bindings/trace.rs | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/components/script/dom/bindings/root.rs b/components/script/dom/bindings/root.rs index 3111182a638..0ba69687dba 100644 --- a/components/script/dom/bindings/root.rs +++ b/components/script/dom/bindings/root.rs @@ -262,7 +262,10 @@ impl RootCollection { unsafe fn unroot(&self, object: *const dyn JSTraceable) { debug_assert!(thread_state::get().is_script()); let roots = &mut *self.roots.get(); - match roots.iter().rposition(|r| *r == object) { + match roots + .iter() + .rposition(|r| *r as *const () == object as *const ()) + { Some(idx) => { roots.remove(idx); }, diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 631731e39a6..2d6b6c04379 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -891,7 +891,11 @@ impl RootedTraceableSet { unsafe fn remove(traceable: *const dyn JSTraceable) { ROOTED_TRACEABLES.with(|ref traceables| { let mut traceables = traceables.borrow_mut(); - let idx = match traceables.set.iter().rposition(|x| *x == traceable) { + let idx = match traceables + .set + .iter() + .rposition(|x| *x as *const () == traceable as *const ()) + { Some(idx) => idx, None => unreachable!(), }; |