With a small type for the color values being left-shifted, the result is
undefined and it could potentially overflow.
https://bugzilla.gnome.org/show_bug.cgi?id=729195
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
value = (p->color->A << 0) | (p->color->Y << 8) |
- (p->color->U << 16) | (p->color->V << 24);
+ (p->color->U << 16) | ((guint32) p->color->V << 24);
#else
- value = (p->color->A << 24) | (p->color->Y << 16) |
+ value = ((guint32) p->color->A << 24) | (p->color->Y << 16) |
(p->color->U << 8) | (p->color->V << 0);
#endif