diff options
Diffstat (limited to 'source/l/lcms2/fdbfb7694f9d7048d53674b79ddfc38068bfdaf7.patch')
-rw-r--r-- | source/l/lcms2/fdbfb7694f9d7048d53674b79ddfc38068bfdaf7.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/source/l/lcms2/fdbfb7694f9d7048d53674b79ddfc38068bfdaf7.patch b/source/l/lcms2/fdbfb7694f9d7048d53674b79ddfc38068bfdaf7.patch new file mode 100644 index 00000000..c9646799 --- /dev/null +++ b/source/l/lcms2/fdbfb7694f9d7048d53674b79ddfc38068bfdaf7.patch @@ -0,0 +1,41 @@ +From fdbfb7694f9d7048d53674b79ddfc38068bfdaf7 Mon Sep 17 00:00:00 2001 +From: Marti Maria <marti.maria@littlecms.com> +Date: Sun, 30 Jan 2022 16:56:48 +0100 +Subject: [PATCH] Fix for optimisation error on grayscale + +Thanks to Aaron Boxer for reporting this issue +--- + src/cmsintrp.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/cmsintrp.c b/src/cmsintrp.c +index 5cd6d16c..5eb98e6c 100644 +--- a/src/cmsintrp.c ++++ b/src/cmsintrp.c +@@ -278,10 +278,10 @@ void Eval1Input(CMSREGISTER const cmsUInt16Number Input[], + // if last value... + if (Input[0] == 0xffff || p16->Domain[0] == 0) { + +- cmsUInt16Number y0 = LutTable[p16->Domain[0]]; +- ++ cmsUInt32Number y0 = p16->Domain[0] * p16->opta[0]; ++ + for (OutChan = 0; OutChan < p16->nOutputs; OutChan++) { +- Output[OutChan] = y0; ++ Output[OutChan] = LutTable[y0 + OutChan]; + } + } + else +@@ -324,10 +324,10 @@ void Eval1InputFloat(const cmsFloat32Number Value[], + // if last value... + if (val2 == 1.0 || p->Domain[0] == 0) { + +- y0 = LutTable[p->Domain[0]]; ++ cmsUInt32Number start = p->Domain[0] * p->opta[0]; + + for (OutChan = 0; OutChan < p->nOutputs; OutChan++) { +- Output[OutChan] = y0; ++ Output[OutChan] = LutTable[start + OutChan]; + } + } + else |