Make possible code-paths asserted

Makes it more obvious to code-checker what is possible.

Change-Id: I8b2bbc55a600e8b570644135867a3244c6d57be7
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Allan Sandfeld Jensen 2024-04-15 13:14:09 +02:00
parent 880d1aef99
commit 7febd6df65

View File

@ -1644,19 +1644,19 @@ void QColorTransformPrivate::applyConvertIn(const S *src, QColorVector *buffer,
return; return;
} }
} }
if (!colorSpaceIn->isThreeComponentMatrix()) { Q_ASSERT(!colorSpaceIn->isThreeComponentMatrix());
if (flags & InputPremultiplied)
loadPremultipliedLUT(buffer, src, len);
else
loadUnpremultipliedLUT(buffer, src, len);
if constexpr (std::is_same_v<S, QRgbaFloat16> || std::is_same_v<S, QRgbaFloat32>) if (flags & InputPremultiplied)
clampIfNeeded<DoClamp>(buffer, len); loadPremultipliedLUT(buffer, src, len);
else
loadUnpremultipliedLUT(buffer, src, len);
// Do element based conversion if constexpr (std::is_same_v<S, QRgbaFloat16> || std::is_same_v<S, QRgbaFloat32>)
for (auto &&element : colorSpaceIn->mAB) clampIfNeeded<DoClamp>(buffer, len);
std::visit([&buffer, len](auto &&elm) { visitElement(elm, buffer, len); }, element);
} // Do element based conversion
for (auto &&element : colorSpaceIn->mAB)
std::visit([&buffer, len](auto &&elm) { visitElement(elm, buffer, len); }, element);
} }
template<typename D, typename S> template<typename D, typename S>
@ -1681,18 +1681,18 @@ void QColorTransformPrivate::applyConvertOut(D *dst, const S *src, QColorVector
return; return;
} }
} }
if (!colorSpaceOut->isThreeComponentMatrix()) { Q_ASSERT(!colorSpaceOut->isThreeComponentMatrix());
// Do element based conversion
for (auto &&element : colorSpaceOut->mBA)
std::visit([&buffer, len](auto &&elm) { visitElement(elm, buffer, len); }, element);
clampIfNeeded<doClamp>(buffer, len); // Do element based conversion
for (auto &&element : colorSpaceOut->mBA)
std::visit([&buffer, len](auto &&elm) { visitElement(elm, buffer, len); }, element);
if (flags & OutputPremultiplied) clampIfNeeded<doClamp>(buffer, len);
storePremultipliedLUT(dst, src, buffer, len);
else if (flags & OutputPremultiplied)
storeUnpremultipliedLUT(dst, src, buffer, len); storePremultipliedLUT(dst, src, buffer, len);
} else
storeUnpremultipliedLUT(dst, src, buffer, len);
} }
template<typename D, typename S> template<typename D, typename S>