You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
993 B
30 lines
993 B
diff -up qtsvg-everywhere-src-5.15.2/src/svg/qsvghandler.cpp.orig qtsvg-everywhere-src-5.15.2/src/svg/qsvghandler.cpp |
|
--- qtsvg-everywhere-src-5.15.2/src/svg/qsvghandler.cpp.orig 2020-10-27 09:02:11.000000000 +0100 |
|
+++ qtsvg-everywhere-src-5.15.2/src/svg/qsvghandler.cpp 2021-03-09 17:48:50.187425243 +0100 |
|
@@ -65,6 +65,7 @@ |
|
#include "private/qmath_p.h" |
|
|
|
#include "float.h" |
|
+#include <cmath> |
|
|
|
QT_BEGIN_NAMESPACE |
|
|
|
@@ -672,6 +673,9 @@ static qreal toDouble(const QChar *&str) |
|
val = -val; |
|
} else { |
|
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; |
|
|
|
@@ -3043,6 +3047,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())
|
|
|