[babl] babl: fix bug in caching of CMYK profiles
- From: Øyvind "pippin" Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [babl] babl: fix bug in caching of CMYK profiles
- Date: Mon, 30 Nov 2020 04:13:08 +0000 (UTC)
commit d8114571ba5edc1700db7a4f8798f20a54ddbe31
Author: Øyvind Kolås <pippin gimp org>
Date: Mon Nov 30 05:11:18 2020 +0100
babl: fix bug in caching of CMYK profiles
The check for duplicates was gumming up the CMYK profile initialization,
causing babl internal CMYK to be used instead and the original icc
profile to be lost.
babl/babl-icc.c | 6 +++---
babl/babl-space.c | 1 -
2 files changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/babl/babl-icc.c b/babl/babl-icc.c
index 7d1fd6705..a0327463d 100644
--- a/babl/babl-icc.c
+++ b/babl/babl-icc.c
@@ -967,6 +967,8 @@ babl_space_from_icc (const char *icc_data,
if (!strcmp (color_space.str, "CMYK"))
{
ret = _babl_space_for_lcms (icc_data, icc_length);
+ if (!ret)
+ return NULL;
if (ret->space.icc_type == BablICCTypeCMYK)
return ret;
ret->space.icc_length = icc_length;
@@ -1002,12 +1004,10 @@ babl_space_from_icc (const char *icc_data,
// INTENT_PERCEPTUAL,0);//intent & 7, 0);
cmsCloseProfile (ret->space.cmyk.lcms_profile); // XXX keep it open in case of CMYK to CMYK
transforms needed?
#endif
+ ret->space.icc_type = BablICCTypeCMYK;
return ret;
}
-
-
-
if (strcmp (color_space.str, "RGB ")
&& strcmp (color_space.str, "GRAY")
)
diff --git a/babl/babl-space.c b/babl/babl-space.c
index c66262971..282d728f7 100644
--- a/babl/babl-space.c
+++ b/babl/babl-space.c
@@ -244,7 +244,6 @@ _babl_space_for_lcms (const char *icc_data,
memset (&space, 0, sizeof(space));
space.instance.class_type = BABL_SPACE;
space.instance.id = 0;
- space.icc_type = BablICCTypeCMYK;
if (i >= MAX_SPACES-1)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]