From f67f5003df306de40416f24bc652fc4630cf5808 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 17 May 2005 06:08:01 +0000 Subject: [PATCH] Avoid shifting 32-bit quanity by 32 bits, which is undefined behavior. --- ChangeLog | 5 +++++ src/cairo-xlib-surface.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5b7b58cf6..5fcc9badd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-05-17 Carl Worth + + * src/cairo-xlib-surface.c (_get_image_surface): Avoid shifting + 32-bit quanity by 32 bits, which is undefined behavior. + 2005-05-17 Carl Worth Rework of cairo_xlib_surface create functions by Keith Packard: diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c index e4d65e0ee..99672dfdc 100644 --- a/src/cairo-xlib-surface.c +++ b/src/cairo-xlib-surface.c @@ -385,9 +385,10 @@ _get_image_surface (cairo_xlib_surface_t *surface, masks.red_mask = 0; masks.green_mask = 0; masks.blue_mask = 0; - masks.alpha_mask = (1 << surface->depth) - 1; - if (!masks.alpha_mask) + if (surface->depth == 32) masks.alpha_mask = 0xffffffff; + else + masks.alpha_mask = (1 << surface->depth) - 1; } if (_CAIRO_MASK_FORMAT (&masks, &format))