aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/canvasrenderingcontext2d.rs
diff options
context:
space:
mode:
authorDavid Zbarsky <dzbarsky@gmail.com>2015-08-04 15:45:38 -0400
committerDavid Zbarsky <dzbarsky@gmail.com>2015-08-04 15:45:38 -0400
commit2fb5fda5d09b86573e2c3c878ee525482327ac91 (patch)
tree7b03de1697bced9f54b1c2cb46bc7a3269164450 /components/script/dom/canvasrenderingcontext2d.rs
parent0565df859684560b525b0361476d334f79db8474 (diff)
downloadservo-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.rs5
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