diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-08-05 10:42:57 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-08-05 10:42:57 -0600 |
commit | 95269bba39313e7a221947a6b20fecc92e87a201 (patch) | |
tree | 0179fc9a1ab01d820cd838d4fed70c81ef6fe6d2 /components/script/dom/canvasrenderingcontext2d.rs | |
parent | b3d61878dc28418e5427e965f26a06766f47358c (diff) | |
parent | 75e444c3b2aea541936331e19c95f52b24159883 (diff) | |
download | servo-95269bba39313e7a221947a6b20fecc92e87a201.tar.gz servo-95269bba39313e7a221947a6b20fecc92e87a201.zip |
Auto merge of #6971 - dzbarsky:negative-radius, r=Ms2ger
Make createRadialGradient throw for negative radii
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6971)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/canvasrenderingcontext2d.rs')
-rw-r--r-- | components/script/dom/canvasrenderingcontext2d.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 834e9606c49..d70cc85fe85 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -1019,10 +1019,14 @@ impl<'a> CanvasRenderingContext2DMethods for &'a CanvasRenderingContext2D { // https://html.spec.whatwg.org/multipage/#dom-context-2d-createradialgradient fn CreateRadialGradient(self, x0: Finite<f64>, y0: Finite<f64>, r0: Finite<f64>, x1: Finite<f64>, y1: Finite<f64>, r1: Finite<f64>) - -> Root<CanvasGradient> { - CanvasGradient::new(self.global.root().r(), - CanvasGradientStyle::Radial( - RadialGradientStyle::new(*x0, *y0, *r0, *x1, *y1, *r1, Vec::new()))) + -> Fallible<Root<CanvasGradient>> { + if *r0 < 0. || *r1 < 0. { + return Err(IndexSize); + } + + Ok(CanvasGradient::new(self.global.root().r(), + CanvasGradientStyle::Radial( + RadialGradientStyle::new(*x0, *y0, *r0, *x1, *y1, *r1, Vec::new())))) } // https://html.spec.whatwg.org/multipage/#dom-context-2d-createpattern |