aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkDisplacementMapEffect.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-02-13 12:48:57 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-13 18:14:20 +0000
commit655bf8f022a31b8a8624838d267b0e9cab0d8ef8 (patch)
tree51dadae4ad48b7dc3ab605342989ab70aaf103ac /src/effects/SkDisplacementMapEffect.cpp
parent0c6ea6c77ad39042759d781e65e3474ebc4ff7ee (diff)
saturate IPoint math, handle NaN in isEmpty
Bug: skia:7507 Change-Id: Ibdb40584effdea70e6499eab1bb64bb4b2260d06 Reviewed-on: https://skia-review.googlesource.com/106972 Commit-Queue: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/effects/SkDisplacementMapEffect.cpp')
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
index 1b055b69a3..ce7fe34ea4 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/SkDisplacementMapEffect.cpp
@@ -88,8 +88,8 @@ void computeDisplacement(Extractor ex, const SkVector& scale, SkBitmap* dst,
SkScalar displX = scaleForColor.fX * ex.getX(c) + scaleAdj.fX;
SkScalar displY = scaleForColor.fY * ex.getY(c) + scaleAdj.fY;
// Truncate the displacement values
- const int srcX = x + SkScalarTruncToInt(displX);
- const int srcY = y + SkScalarTruncToInt(displY);
+ const int32_t srcX = Sk32_sat_add(x, SkScalarTruncToInt(displX));
+ const int32_t srcY = Sk32_sat_add(y, SkScalarTruncToInt(displY));
*dstPtr++ = ((srcX < 0) || (srcX >= srcW) || (srcY < 0) || (srcY >= srcH)) ?
0 : *(src.getAddr32(srcX, srcY));
}