From ebebd207eeac88079ee0bad5be5929f24ce980ed Mon Sep 17 00:00:00 2001 From: Mats Palmgren Date: Mon, 30 Nov 2015 13:06:39 +0100 Subject: [PATCH] Backout bug 1226627 part 2 (rev 673461c0b772) for Talos regressions on Android. r=me --- gfx/src/nsCoord.h | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/gfx/src/nsCoord.h b/gfx/src/nsCoord.h index 0ecdd6c5b7a..bb53611cfdd 100644 --- a/gfx/src/nsCoord.h +++ b/gfx/src/nsCoord.h @@ -110,8 +110,6 @@ inline nscoord NSToCoordRoundWithClamp(float aValue) if (aValue <= nscoord_MIN) { return nscoord_MIN; } - // NOTE: we can't replace the early returns above with fminf/fmaxf because - // NSToCoordRound(float(nscoord_MAX)) is negative on win32 (bug 1226627). #endif return NSToCoordRound(aValue); } @@ -261,8 +259,12 @@ inline nscoord NSToCoordFloorClamped(float aValue) { #ifndef NS_COORD_IS_FLOAT // Bounds-check before converting out of float, to avoid overflow - aValue = fminf(aValue, nscoord_MAX); - aValue = fmaxf(aValue, nscoord_MIN); + if (aValue >= nscoord_MAX) { + return nscoord_MAX; + } + if (aValue <= nscoord_MIN) { + return nscoord_MIN; + } #endif return NSToCoordFloor(aValue); } @@ -281,8 +283,12 @@ inline nscoord NSToCoordCeilClamped(double aValue) { #ifndef NS_COORD_IS_FLOAT // Bounds-check before converting out of double, to avoid overflow - aValue = fmin(aValue, nscoord_MAX); - aValue = fmax(aValue, nscoord_MIN); + if (aValue >= nscoord_MAX) { + return nscoord_MAX; + } + if (aValue <= nscoord_MIN) { + return nscoord_MIN; + } #endif return NSToCoordCeil(aValue); } @@ -309,8 +315,12 @@ inline nscoord NSToCoordTruncClamped(float aValue) { #ifndef NS_COORD_IS_FLOAT // Bounds-check before converting out of float, to avoid overflow - aValue = fminf(aValue, nscoord_MAX); - aValue = fmaxf(aValue, nscoord_MIN); + if (aValue >= nscoord_MAX) { + return nscoord_MAX; + } + if (aValue <= nscoord_MIN) { + return nscoord_MIN; + } #endif return NSToCoordTrunc(aValue); } @@ -319,8 +329,12 @@ inline nscoord NSToCoordTruncClamped(double aValue) { #ifndef NS_COORD_IS_FLOAT // Bounds-check before converting out of double, to avoid overflow - aValue = fmin(aValue, nscoord_MAX); - aValue = fmax(aValue, nscoord_MIN); + if (aValue >= nscoord_MAX) { + return nscoord_MAX; + } + if (aValue <= nscoord_MIN) { + return nscoord_MIN; + } #endif return NSToCoordTrunc(aValue); }