diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2016-04-09 00:48:19 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-05-03 18:36:11 +0200 |
commit | eb94f1a9182c369165ddbf040fcb97c408482689 (patch) | |
tree | 80ac2d439c9e76a8163b001700f1f91f248e0ba8 /components/script/dom/imagedata.rs | |
parent | d32648172c711b5d95819c58bcedcee5f50f3018 (diff) | |
download | servo-eb94f1a9182c369165ddbf040fcb97c408482689.tar.gz servo-eb94f1a9182c369165ddbf040fcb97c408482689.zip |
Update SpiderMonkey
Diffstat (limited to 'components/script/dom/imagedata.rs')
-rw-r--r-- | components/script/dom/imagedata.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/components/script/dom/imagedata.rs b/components/script/dom/imagedata.rs index cbc3b489a21..abcb9b5640b 100644 --- a/components/script/dom/imagedata.rs +++ b/components/script/dom/imagedata.rs @@ -39,7 +39,9 @@ impl ImageData { let js_object: *mut JSObject = JS_NewUint8ClampedArray(cx, width * height * 4); if let Some(vec) = data { - let js_object_data: *mut uint8_t = JS_GetUint8ClampedArrayData(js_object, ptr::null()); + let mut is_shared = false; + let js_object_data: *mut uint8_t = JS_GetUint8ClampedArrayData(js_object, &mut is_shared, ptr::null()); + assert!(!is_shared); ptr::copy_nonoverlapping(vec.as_ptr(), js_object_data, vec.len()) } (*imagedata).data.set(js_object); @@ -53,7 +55,10 @@ impl ImageData { pub fn get_data_array(&self, global: &GlobalRef) -> Vec<u8> { unsafe { let cx = global.get_cx(); - let data: *const uint8_t = JS_GetUint8ClampedArrayData(self.Data(cx), ptr::null()) as *const uint8_t; + let mut is_shared = false; + let data: *const uint8_t = + JS_GetUint8ClampedArrayData(self.Data(cx), &mut is_shared, ptr::null()) as *const uint8_t; + assert!(!is_shared); let len = self.Width() * self.Height() * 4; slice::from_raw_parts(data, len as usize).to_vec() } |