41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
diff -up qt-everywhere-opensource-src-4.8.7/src/svg/qsvghandler.cpp.me qt-everywhere-opensource-src-4.8.7/src/svg/qsvghandler.cpp
|
|
--- qt-everywhere-opensource-src-4.8.7/src/svg/qsvghandler.cpp.me 2021-03-09 14:23:00.636840796 +0100
|
|
+++ qt-everywhere-opensource-src-4.8.7/src/svg/qsvghandler.cpp 2021-03-09 21:34:46.240482104 +0100
|
|
@@ -68,6 +68,7 @@
|
|
#include "private/qmath_p.h"
|
|
|
|
#include "float.h"
|
|
+#include <cmath>
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
@@ -630,15 +631,10 @@ static qreal toDouble(const QChar *&str)
|
|
if (neg)
|
|
val = -val;
|
|
} else {
|
|
-#if defined(Q_WS_QWS) && !defined(Q_OS_VXWORKS)
|
|
- if(sizeof(qreal) == sizeof(float))
|
|
- val = strtof(temp, 0);
|
|
- else
|
|
-#endif
|
|
- {
|
|
- bool ok = false;
|
|
- val = qstrtod(temp, 0, &ok);
|
|
- }
|
|
+ val = QByteArray::fromRawData(temp, pos).toDouble();
|
|
+ // Do not tolerate values too wild to be represented normally by floats
|
|
+ if (std::fpclassify(float(val)) != FP_NORMAL)
|
|
+ val = 0;
|
|
}
|
|
return val;
|
|
|
|
@@ -2945,6 +2941,8 @@ static QSvgStyleProperty *createRadialGr
|
|
ncy = toDouble(cy);
|
|
if (!r.isEmpty())
|
|
nr = toDouble(r);
|
|
+ if (nr < 0.5)
|
|
+ nr = 0.5;
|
|
|
|
qreal nfx = ncx;
|
|
if (!fx.isEmpty())
|