summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2023-03-01 10:12:03 +0000
committerJonas Ã…dahl <jadahl@gmail.com>2023-03-03 07:59:50 -0500
commitc418c4497b2138fc893cfc729ac79fba55b0788b (patch)
tree680f2dc0211b7c317db12856ae37c5a25964c11f
parent12ce58dba4f96f6a948c1d166646d263253e3ee0 (diff)
downloadmutter-c418c4497b2138fc893cfc729ac79fba55b0788b.tar.gz
color-device: Make sure lcms_context is not NULL
lcms interprets a NULL context as using a default, non-thread-safe context, which is unsuitable for mutter's use. Make sure we're always using a non-trivial context. Helps: https://gitlab.gnome.org/GNOME/mutter/-/issues/2659 Signed-off-by: Simon McVittie <smcv@debian.org> Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2877> (cherry picked from commit e2be2d271b9fe79e456628f58ef5d828a27edb0d)
-rw-r--r--src/backends/meta-color-device.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backends/meta-color-device.c b/src/backends/meta-color-device.c
index c0a98a46f..5533a8ece 100644
--- a/src/backends/meta-color-device.c
+++ b/src/backends/meta-color-device.c
@@ -846,6 +846,14 @@ create_icc_profile_from_edid (MetaColorDevice *color_device,
return NULL;
}
+ lcms_context = meta_color_manager_get_lcms_context (color_manager);
+ if (!lcms_context)
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "Internal error: no LCMS context available");
+ return NULL;
+ }
+
cd_icc = cd_icc_new ();
chroma.Red.x = edid_info->red_x;
@@ -863,7 +871,6 @@ create_icc_profile_from_edid (MetaColorDevice *color_device,
transfer_curve[1] = transfer_curve[0];
transfer_curve[2] = transfer_curve[0];
- lcms_context = meta_color_manager_get_lcms_context (color_manager);
lcms_profile = cmsCreateRGBProfileTHR (lcms_context,
&white_point,
&chroma,