diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 31aa068e0..16ab309e2 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -729,9 +729,9 @@ xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask) scrp->mask.red = mask.red; scrp->mask.green = mask.green; scrp->mask.blue = mask.blue; - scrp->offset.red = ffs(mask.red); - scrp->offset.green = ffs(mask.green); - scrp->offset.blue = ffs(mask.blue); + scrp->offset.red = ffs(mask.red) - 1; + scrp->offset.green = ffs(mask.green) - 1; + scrp->offset.blue = ffs(mask.blue) - 1; } return TRUE; } diff --git a/render/picture.c b/render/picture.c index 876316dc1..afa0d258f 100644 --- a/render/picture.c +++ b/render/picture.c @@ -523,12 +523,12 @@ PictureMatchVisual(ScreenPtr pScreen, int depth, VisualPtr pVisual) return format; } else { - if (format->direct.redMask << format->direct.red == - pVisual->redMask && - format->direct.greenMask << format->direct.green == - pVisual->greenMask && - format->direct.blueMask << format->direct.blue == - pVisual->blueMask) { + if ((unsigned long)format->direct.redMask << + format->direct.red == pVisual->redMask && + (unsigned long)format->direct.greenMask << + format->direct.green == pVisual->greenMask && + (unsigned long)format->direct.blueMask << + format->direct.blue == pVisual->blueMask) { return format; } }