aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/imagedata.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/imagedata.rs')
-rw-r--r--components/script/dom/imagedata.rs9
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()
}