summaryrefslogtreecommitdiff
path: root/ext/canvas
diff options
context:
space:
mode:
Diffstat (limited to 'ext/canvas')
-rw-r--r--ext/canvas/01_image.js4
-rw-r--r--ext/canvas/lib.rs3
2 files changed, 5 insertions, 2 deletions
diff --git a/ext/canvas/01_image.js b/ext/canvas/01_image.js
index a738f7992..6fb1ee62f 100644
--- a/ext/canvas/01_image.js
+++ b/ext/canvas/01_image.js
@@ -238,7 +238,9 @@ function createImageBitmap(
"InvalidStateError",
);
}
- const { data: imageData, width, height } = op_image_decode_png(data);
+ const { data: imageData, width, height } = op_image_decode_png(
+ new Uint8Array(data),
+ );
const processedImage = processImage(
imageData,
width,
diff --git a/ext/canvas/lib.rs b/ext/canvas/lib.rs
index b05332c3f..72173f133 100644
--- a/ext/canvas/lib.rs
+++ b/ext/canvas/lib.rs
@@ -130,7 +130,8 @@ fn op_image_decode_png(#[buffer] buf: &[u8]) -> Result<DecodedPng, AnyError> {
)));
}
- let mut png_data = Vec::with_capacity(png.total_bytes() as usize);
+ // read_image will assert that the buffer is the correct size, so we need to fill it with zeros
+ let mut png_data = vec![0_u8; png.total_bytes() as usize];
png.read_image(&mut png_data)?;