diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2018-08-20 18:23:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-20 18:23:22 -0400 |
commit | 5c8ede4b05f3940cfaa94d6341984502c920685d (patch) | |
tree | a80924c2d87b67e8963c1f23dee425f012ed23a5 /components/script/dom/bindings/weakref.rs | |
parent | 561908a965e6eef79800d3cc7598e5e6ea534cf9 (diff) | |
parent | 74c1e00d8163f255bb4141ff3549bbdedd7ea766 (diff) | |
download | servo-5c8ede4b05f3940cfaa94d6341984502c920685d.tar.gz servo-5c8ede4b05f3940cfaa94d6341984502c920685d.zip |
Auto merge of #21029 - asajeffrey:smup, r=Manishearth,nox
Upgrade to SM 60
<!-- Please describe your changes on the following line: -->
This is the mozjs_sys smup PR. Depends on https://github.com/servo/mozjs/pull/138 and https://github.com/servo/rust-mozjs/pull/430.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #20585
<!-- Either: -->
- [X] These changes do not require tests because the existing tests will ensure SM is still working
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21029)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/bindings/weakref.rs')
-rw-r--r-- | components/script/dom/bindings/weakref.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/components/script/dom/bindings/weakref.rs b/components/script/dom/bindings/weakref.rs index abb1e07bc08..4cafafc0440 100644 --- a/components/script/dom/bindings/weakref.rs +++ b/components/script/dom/bindings/weakref.rs @@ -15,8 +15,10 @@ use dom::bindings::cell::DomRefCell; use dom::bindings::reflector::DomObject; use dom::bindings::root::DomRoot; use dom::bindings::trace::JSTraceable; -use js::jsapi::{JSTracer, JS_GetReservedSlot, JS_SetReservedSlot}; +use js::glue::JS_GetReservedSlot; +use js::jsapi::{JSTracer, JS_SetReservedSlot}; use js::jsval::PrivateValue; +use js::jsval::UndefinedValue; use libc::c_void; use malloc_size_of::{MallocSizeOf, MallocSizeOfOps}; use std::cell::{Cell, UnsafeCell}; @@ -53,16 +55,17 @@ pub trait WeakReferenceable: DomObject + Sized { fn downgrade(&self) -> WeakRef<Self> { unsafe { let object = self.reflector().get_jsobject().get(); - let mut ptr = JS_GetReservedSlot(object, - DOM_WEAK_SLOT) - .to_private() as *mut WeakBox<Self>; + let mut slot = UndefinedValue(); + JS_GetReservedSlot(object, DOM_WEAK_SLOT, &mut slot); + let mut ptr = slot.to_private() as *mut WeakBox<Self>; if ptr.is_null() { trace!("Creating new WeakBox holder for {:p}.", self); ptr = Box::into_raw(Box::new(WeakBox { count: Cell::new(1), value: Cell::new(Some(ptr::NonNull::from(self))), })); - JS_SetReservedSlot(object, DOM_WEAK_SLOT, PrivateValue(ptr as *const c_void)); + let val = PrivateValue(ptr as *const c_void); + JS_SetReservedSlot(object, DOM_WEAK_SLOT, &val); } let box_ = &*ptr; assert!(box_.value.get().is_some()); |