diff --git a/src/gui/painting/qcolortransfertable_p.h b/src/gui/painting/qcolortransfertable_p.h index ce6ad0c4b25..adaa3698503 100644 --- a/src/gui/painting/qcolortransfertable_p.h +++ b/src/gui/painting/qcolortransfertable_p.h @@ -111,7 +111,7 @@ public: return x; } - // Apply inverse, optimized by giving a previous result a value < x. + // Apply inverse, optimized by giving a previous result for a value < x. float applyInverse(float x, float resultLargerThan = 0.0f) const { Q_ASSERT(resultLargerThan >= 0.0f && resultLargerThan <= 1.0f); @@ -191,7 +191,7 @@ private: template static float inverseLookup(float needle, float resultLargerThan, const QList &table, quint32 tableMax) { - uint32_t i = static_cast(resultLargerThan * tableMax); + uint32_t i = qMax(static_cast(resultLargerThan * tableMax), 1U) - 1; auto it = std::lower_bound(table.cbegin() + i, table.cend(), needle); i = it - table.cbegin(); if (i == 0)