Bug 1431787 - Mark wr_dec_ref_arc safe to be called by the WebRenderAPI destructor when WR is not built. r=lsalzman a=RyanVM
authorKartikaya Gupta <kgupta@mozilla.com>
Fri, 19 Jan 2018 13:19:00 -0500
changeset 454283 a1e2c443c259786f393b0e29f666010798bcb23d
parent 454282 55e8bfe2dc423584750bdd08eb469ef98f50b38e
child 454284 7861a7df0c4dda3414529637d638c68724e3521a
push id1648
push usermtabara@mozilla.com
push dateThu, 01 Mar 2018 12:45:47 +0000
treeherdermozilla-release@cbb9688c2eeb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerslsalzman, RyanVM
bugs1431787
milestone59.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1431787 - Mark wr_dec_ref_arc safe to be called by the WebRenderAPI destructor when WR is not built. r=lsalzman a=RyanVM Landing on a CLOSED TREE because this needs to go to beta to fix the build. MozReview-Commit-ID: cSwZ2Bp242
gfx/webrender_bindings/src/bindings.rs
gfx/webrender_bindings/webrender_ffi_generated.h
--- a/gfx/webrender_bindings/src/bindings.rs
+++ b/gfx/webrender_bindings/src/bindings.rs
@@ -2050,16 +2050,17 @@ pub extern "C" fn wr_api_hit_test(dh: &m
 pub type VecU8 = Vec<u8>;
 pub type ArcVecU8 = Arc<VecU8>;
 
 #[no_mangle]
 pub extern "C" fn wr_add_ref_arc(arc: &ArcVecU8) -> *const VecU8 {
     Arc::into_raw(arc.clone())
 }
 
+/// cbindgen:postfix=WR_DESTRUCTOR_SAFE_FUNC
 #[no_mangle]
 pub unsafe extern "C" fn wr_dec_ref_arc(arc: *const VecU8) {
     Arc::from_raw(arc);
 }
 
 // TODO: nical
 // Update for the new blob image interface changes.
 //
--- a/gfx/webrender_bindings/webrender_ffi_generated.h
+++ b/gfx/webrender_bindings/webrender_ffi_generated.h
@@ -1017,17 +1017,17 @@ void wr_api_send_transaction(DocumentHan
 WR_FUNC;
 
 WR_INLINE
 void wr_clear_item_tag(WrState *aState)
 WR_FUNC;
 
 WR_INLINE
 void wr_dec_ref_arc(const VecU8 *aArc)
-WR_FUNC;
+WR_DESTRUCTOR_SAFE_FUNC;
 
 WR_INLINE
 void wr_dp_clear_save(WrState *aState)
 WR_FUNC;
 
 WR_INLINE
 uint64_t wr_dp_define_clip(WrState *aState,
                            const uint64_t *aAncestorScrollId,