Daniel Kurtz <[email protected]> writes:

> +      int srcX,            /* bits */
> +      FbBits * dstLine,    /* pixels */
> +      FbStride dstStride,  /* pixels */

FbStride is in FbBits units, not pixels (yes, at 32bpp, it's the same)

> +      int dstX,            /* bits */
> +      int width,           /* bits */
>        int height, int alu, FbBits pm, int bpp, Bool reverse, Bool upsidedown)


> -    careful = !((srcLine < dstLine && srcLine + width * (bpp >> 3) > 
> dstLine) ||
> -                (dstLine < srcLine && dstLine + width * (bpp >> 3) > 
> srcLine))
> +    /* We must be careful if src and dst regions overlap */
> +    careful = ((srcLine < dstLine && srcLine + (width / bpp) > dstLine) ||
> +                (dstLine < srcLine && dstLine + (width / bpp) > srcLine))

I don't think that's correct either (although closer). srcLine + (width >>
FB_SHIFT) is what you want as that converts width from bits to FbBits units.

-- 
[email protected]

Attachment: pgpa8HCQZn58x.pgp
Description: PGP signature

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to