diff options
author | David Zbarsky <dzbarsky@gmail.com> | 2015-08-04 15:45:38 -0400 |
---|---|---|
committer | David Zbarsky <dzbarsky@gmail.com> | 2015-08-04 15:45:38 -0400 |
commit | 2fb5fda5d09b86573e2c3c878ee525482327ac91 (patch) | |
tree | 7b03de1697bced9f54b1c2cb46bc7a3269164450 /components/script/dom/canvasrenderingcontext2d.rs | |
parent | 0565df859684560b525b0361476d334f79db8474 (diff) | |
download | servo-2fb5fda5d09b86573e2c3c878ee525482327ac91.tar.gz servo-2fb5fda5d09b86573e2c3c878ee525482327ac91.zip |
Fix createImageData with sizes < 1 pixel
Diffstat (limited to 'components/script/dom/canvasrenderingcontext2d.rs')
-rw-r--r-- | components/script/dom/canvasrenderingcontext2d.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 834e9606c49..5b73d7a900d 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -42,6 +42,7 @@ use num::{Float, ToPrimitive}; use std::borrow::ToOwned; use std::cell::RefCell; use std::fmt; +use std::cmp; use std::sync::mpsc::channel; use util::str::DOMString; @@ -954,7 +955,9 @@ impl<'a> CanvasRenderingContext2DMethods for &'a CanvasRenderingContext2D { return Err(IndexSize) } - Ok(ImageData::new(self.global.root().r(), sw.abs().to_u32().unwrap(), sh.abs().to_u32().unwrap(), None)) + let sw = cmp::max(1, sw.abs().to_u32().unwrap()); + let sh = cmp::max(1, sh.abs().to_u32().unwrap()); + Ok(ImageData::new(self.global.root().r(), sw, sh, None)) } // https://html.spec.whatwg.org/multipage/#dom-context-2d-createimagedata |