MSVC: Silence compiler warning about INFINITY

Contrary to the comment, MSVC does support INFINITY, but
always prints a warning when it's used:

qpainterpath.cpp(3066) : warning C4756: overflow in constant arithmetic

Avoid this by using numeric_limits<T>::infinity.

Change-Id: Ie925b036b807378da5298a275fa108347c24519e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
This commit is contained in:
Kai Koehne 2015-04-13 15:50:45 +02:00
parent e5eb36feb2
commit dad54e794f

View File

@ -3057,20 +3057,19 @@ qreal QPainterPath::slopeAtPercent(qreal t) const
//tangent line //tangent line
qreal slope = 0; qreal slope = 0;
#define SIGN(x) ((x < 0)?-1:1)
if (m1) if (m1)
slope = m2/m1; slope = m2/m1;
else { else {
//windows doesn't define INFINITY :( if (std::numeric_limits<qreal>::has_infinity) {
#ifdef INFINITY slope = (m2 < 0) ? -std::numeric_limits<qreal>::infinity()
slope = INFINITY*SIGN(m2); : std::numeric_limits<qreal>::infinity();
#else
if (sizeof(qreal) == sizeof(double)) {
return 1.79769313486231570e+308;
} else { } else {
return ((qreal)3.40282346638528860e+38); if (sizeof(qreal) == sizeof(double)) {
return 1.79769313486231570e+308;
} else {
return ((qreal)3.40282346638528860e+38);
}
} }
#endif
} }
return slope; return slope;