diff --git a/gdk/gdkcolorstate.c b/gdk/gdkcolorstate.c index b4a718ca50..a5b2d0218b 100644 --- a/gdk/gdkcolorstate.c +++ b/gdk/gdkcolorstate.c @@ -449,7 +449,6 @@ TRANSFORM(gdk_cicp_from_rec2100_linear, NONE, cicp->from_rec2020, cicp->o #undef cicp -/* }}} */ /* }}} */ /* {{{ Vfuncs */ diff --git a/gdk/gdkcolorstateprivate.h b/gdk/gdkcolorstateprivate.h index c62b55381e..e18a0f615a 100644 --- a/gdk/gdkcolorstateprivate.h +++ b/gdk/gdkcolorstateprivate.h @@ -176,7 +176,10 @@ gdk_color_state_convert_color (GdkColorState *src_cs, GdkFloatColorConvert convert = NULL; GdkFloatColorConvert convert2 = NULL; - memcpy (dest, src, sizeof (float) * 4); + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + dest[3] = src[3]; if (gdk_color_state_equal (src_cs, dest_cs)) return; diff --git a/gsk/gpu/gskgpucolorstatesprivate.h b/gsk/gpu/gskgpucolorstatesprivate.h index 354c37ff21..07ccdb8775 100644 --- a/gsk/gpu/gskgpucolorstatesprivate.h +++ b/gsk/gpu/gskgpucolorstatesprivate.h @@ -74,6 +74,10 @@ gsk_gpu_color_states_is_alt_premultiplied (GskGpuColorStates self) return !!(self & COLOR_SPACE_ALT_PREMULTIPLIED); } +/* Note: this function should only return a colorstate other than + * color->color_state *only* if the shaders can't handle the conversion + * from color->color_state to ccs. + */ static inline GdkColorState * gsk_gpu_color_states_find (GdkColorState *ccs, const GdkColor *color)