From 55bd8fbf38d3eede7ae7cf0eed357117e9eeba98 Mon Sep 17 00:00:00 2001 From: Sami Varanka Date: Fri, 23 Jul 2021 10:40:55 +0300 Subject: Fix: basegradient applied incorrectly to surface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When surface data contains NaN/Inf values, the basegradient might get applied incorrectly. Fixed the error by adding check for NaN/Inf in getNormalizedVertex. Pick-to: 6.1 Fixes: QTBUG-78767 Change-Id: I94d850f8ed21bc98dcbc4ba26b02989c1c1bf90b Reviewed-by: Janne Koskinen Reviewed-by: Tomi Korpipää --- src/datavisualization/utils/surfaceobject.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/datavisualization/utils') diff --git a/src/datavisualization/utils/surfaceobject.cpp b/src/datavisualization/utils/surfaceobject.cpp index 6734ac86..7d73e700 100644 --- a/src/datavisualization/utils/surfaceobject.cpp +++ b/src/datavisualization/utils/surfaceobject.cpp @@ -870,7 +870,8 @@ void SurfaceObject::getNormalizedVertex(const QSurfaceDataItem &data, QVector3D } float normalizedY = m_axisCacheY.positionAt(data.y()); m_minY = qMin(normalizedY, m_minY); - m_maxY = qMax(normalizedY, m_maxY); + if (!qIsNaN(normalizedY) && !qIsInf(normalizedY)) + m_maxY = qMax(normalizedY, m_maxY); vertex.setX(normalizedX); vertex.setY(normalizedY); vertex.setZ(normalizedZ); -- cgit v1.2.3