diff --git a/components/script/dom/bindings/buffer_source.rs b/components/script/dom/bindings/buffer_source.rs index 071b95cf0a7..4532c0c95f0 100644 --- a/components/script/dom/bindings/buffer_source.rs +++ b/components/script/dom/bindings/buffer_source.rs @@ -52,6 +52,7 @@ pub(crate) enum BufferSource { pub(crate) fn new_initialized_heap_buffer_source( init: HeapTypedArrayInit, + can_gc: CanGc, ) -> Result, ()> where T: TypedArrayElement + TypedArrayElementCreator, @@ -65,7 +66,7 @@ where HeapTypedArrayInit::Info { len, cx } => { rooted!(in (*cx) let mut array = ptr::null_mut::()); let typed_array_result = - create_buffer_source_with_length::(cx, len as usize, array.handle_mut()); + create_buffer_source_with_length::(cx, len as usize, array.handle_mut(), can_gc); if typed_array_result.is_err() { return Err(()); } @@ -371,6 +372,7 @@ fn create_buffer_source_with_length( cx: JSContext, len: usize, dest: MutableHandleObject, + _can_gc: CanGc, ) -> Result, ()> where T: TypedArrayElement + TypedArrayElementCreator, diff --git a/components/script/dom/imagedata.rs b/components/script/dom/imagedata.rs index f8da034179e..03224afd303 100644 --- a/components/script/dom/imagedata.rs +++ b/components/script/dom/imagedata.rs @@ -67,6 +67,7 @@ impl ImageData { ) -> Fallible> { let heap_typed_array = match new_initialized_heap_buffer_source::( HeapTypedArrayInit::Buffer(BufferSource::ArrayBufferView(Heap::boxed(jsobject))), + can_gc, ) { Ok(heap_typed_array) => heap_typed_array, Err(_) => return Err(Error::JSFailed), @@ -121,14 +122,13 @@ impl ImageData { let cx = GlobalScope::get_cx(); let len = width * height * 4; - let heap_typed_array = - match new_initialized_heap_buffer_source::(HeapTypedArrayInit::Info { - len, - cx, - }) { - Ok(heap_typed_array) => heap_typed_array, - Err(_) => return Err(Error::JSFailed), - }; + let heap_typed_array = match new_initialized_heap_buffer_source::( + HeapTypedArrayInit::Info { len, cx }, + can_gc, + ) { + Ok(heap_typed_array) => heap_typed_array, + Err(_) => return Err(Error::JSFailed), + }; let imagedata = Box::new(ImageData { reflector_: Reflector::new(), width,