mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Make ImageData::new return Fallible instead of panic
This commit is contained in:
parent
17098ddc8f
commit
c83ac31e71
2 changed files with 12 additions and 8 deletions
|
@ -998,15 +998,15 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
|
||||||
|
|
||||||
let sw = cmp::max(1, sw.abs().to_u32().unwrap());
|
let sw = cmp::max(1, sw.abs().to_u32().unwrap());
|
||||||
let sh = cmp::max(1, sh.abs().to_u32().unwrap());
|
let sh = cmp::max(1, sh.abs().to_u32().unwrap());
|
||||||
Ok(ImageData::new(&self.global(), sw, sh, None))
|
ImageData::new(&self.global(), sw, sh, None)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-createimagedata
|
// https://html.spec.whatwg.org/multipage/#dom-context-2d-createimagedata
|
||||||
fn CreateImageData_(&self, imagedata: &ImageData) -> Fallible<Root<ImageData>> {
|
fn CreateImageData_(&self, imagedata: &ImageData) -> Fallible<Root<ImageData>> {
|
||||||
Ok(ImageData::new(&self.global(),
|
ImageData::new(&self.global(),
|
||||||
imagedata.Width(),
|
imagedata.Width(),
|
||||||
imagedata.Height(),
|
imagedata.Height(),
|
||||||
None))
|
None)
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-getimagedata
|
// https://html.spec.whatwg.org/multipage/#dom-context-2d-getimagedata
|
||||||
|
@ -1059,7 +1059,7 @@ impl CanvasRenderingContext2DMethods for CanvasRenderingContext2D {
|
||||||
chunk[2] = UNPREMULTIPLY_TABLE[256 * alpha + chunk[2] as usize];
|
chunk[2] = UNPREMULTIPLY_TABLE[256 * alpha + chunk[2] as usize];
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(ImageData::new(&self.global(), sw, sh, Some(data)))
|
ImageData::new(&self.global(), sw, sh, Some(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-context-2d-putimagedata
|
// https://html.spec.whatwg.org/multipage/#dom-context-2d-putimagedata
|
||||||
|
|
|
@ -28,7 +28,11 @@ pub struct ImageData {
|
||||||
|
|
||||||
impl ImageData {
|
impl ImageData {
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
pub fn new(global: &GlobalScope, width: u32, height: u32, mut data: Option<Vec<u8>>) -> Root<ImageData> {
|
pub fn new(global: &GlobalScope,
|
||||||
|
width: u32,
|
||||||
|
height: u32,
|
||||||
|
mut data: Option<Vec<u8>>)
|
||||||
|
-> Fallible<Root<ImageData>> {
|
||||||
let len = width * height * 4;
|
let len = width * height * 4;
|
||||||
unsafe {
|
unsafe {
|
||||||
let cx = global.get_cx();
|
let cx = global.get_cx();
|
||||||
|
@ -41,7 +45,7 @@ impl ImageData {
|
||||||
None => CreateWith::Length(len),
|
None => CreateWith::Length(len),
|
||||||
};
|
};
|
||||||
Uint8ClampedArray::create(cx, data, js_object.handle_mut()).unwrap();
|
Uint8ClampedArray::create(cx, data, js_object.handle_mut()).unwrap();
|
||||||
Self::new_with_jsobject(global, width, Some(height), Some(js_object.get())).unwrap()
|
Self::new_with_jsobject(global, width, Some(height), Some(js_object.get()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue