From: Nigel Tao Date: Fri, 10 Sep 2010 09:48:27 +0000 (+1000) Subject: exp/draw: fix double-counting of pt.Min for the src and mask points. X-Git-Tag: weekly.2010-09-15~67 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d660d4a6d0a3fe4712322b92afadc78705c6862b;p=gostls13.git exp/draw: fix double-counting of pt.Min for the src and mask points. The min is typically zero, which is why this hasn't bitten us yet. R=r CC=golang-dev https://golang.org/cl/2119048 --- diff --git a/src/pkg/exp/draw/draw.go b/src/pkg/exp/draw/draw.go index 00bd829467..d76f7aa550 100644 --- a/src/pkg/exp/draw/draw.go +++ b/src/pkg/exp/draw/draw.go @@ -44,14 +44,14 @@ func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point) { // TODO(nigeltao): Optimize this. func DrawMask(dst Image, r image.Rectangle, src image.Image, sp image.Point, mask image.Image, mp image.Point, op Op) { sb := src.Bounds() - dx, dy := sb.Dx()-sp.X, sb.Dy()-sp.Y + dx, dy := sb.Max.X-sp.X, sb.Max.Y-sp.Y if mask != nil { mb := mask.Bounds() - if dx > mb.Dx()-mp.X { - dx = mb.Dx() - mp.X + if dx > mb.Max.X-mp.X { + dx = mb.Max.X - mp.X } - if dy > mb.Dy()-mp.Y { - dy = mb.Dy() - mp.Y + if dy > mb.Max.Y-mp.Y { + dy = mb.Max.Y - mp.Y } } if r.Dx() > dx {