Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mm2/Little-CMS.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarti Maria <marti.maria@littlecms.com>2022-09-01 01:07:13 +0300
committerMarti Maria <marti.maria@littlecms.com>2022-09-01 01:07:13 +0300
commiteaed773f8201461e7b80df5f935f6183cebda272 (patch)
treec660049671e4c677ab374949d43c37fa461f6e86
parent62aca4b8148bcfb85d798e2a70612e0ce833551b (diff)
Add a check for alpha 0 on premultiplied alpha
Was missing in the generic cases
-rw-r--r--src/cmspack.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/cmspack.c b/src/cmspack.c
index 5ab4525..9d312a0 100644
--- a/src/cmspack.c
+++ b/src/cmspack.c
@@ -592,8 +592,11 @@ cmsUInt8Number* UnrollAnyWordsPremul(CMSREGISTER _cmsTRANSFORM* info,
if (SwapEndian)
v = CHANGE_ENDIAN(v);
- v = (v << 16) / alpha_factor;
- if (v > 0xffff) v = 0xffff;
+ if (alpha_factor > 0) {
+
+ v = (v << 16) / alpha_factor;
+ if (v > 0xffff) v = 0xffff;
+ }
wIn[index] = (cmsUInt16Number) (Reverse ? REVERSE_FLAVOR_16(v) : v);
@@ -674,8 +677,11 @@ cmsUInt8Number* UnrollPlanarWordsPremul(CMSREGISTER _cmsTRANSFORM* info,
if (SwapEndian)
v = CHANGE_ENDIAN(v);
- v = (v << 16) / alpha_factor;
- if (v > 0xffff) v = 0xffff;
+ if (alpha_factor > 0) {
+
+ v = (v << 16) / alpha_factor;
+ if (v > 0xffff) v = 0xffff;
+ }
wIn[index] = (cmsUInt16Number) (Reverse ? REVERSE_FLAVOR_16(v) : v);