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:
parent
e5eb36feb2
commit
dad54e794f
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user