• Mike Gabriel's avatar
    Use internal temp variable for swap macros. Make swaps/swapl type safe… · 286d8326
    Mike Gabriel authored
    Use internal temp variable for swap macros. Make swaps/swapl type safe (introducing wrong_size check at build time).
    
     While working on this changeset, various spots got discovered where
     swapl or swaps was used on a wrong type, where byte swapping calls had
     been forgotten or done on the wrong variable.
    
     This backport at least includes changes from the following X.org
     commits, listed in non-chronological order:
    
     commit 2c7c520cfe0df30f4bc3adba59d9c62582823bf8
     Author: Matt Turner <mattst88@gmail.com>
     Date:   Thu Aug 4 15:35:41 2011 -0400
    
        Use internal temp variable for swap macros
    
        Also, fix whitespace, mainly around
            swaps(&rep.sequenceNumber)
    Reviewed-by: 's avatarPeter Harris <pharris@opentext.com>
    Signed-off-by: 's avatarMatt Turner <mattst88@gmail.com>
    
     commit 9edcae78c46286baff42e74bfe26f6ae4d00fe01
     Author: Matt Turner <mattst88@gmail.com>
     Date:   Wed Sep 21 17:14:16 2011 -0400
    
        Use correct swap{l,s} (or none at all for CARD8)
    
        Swapping the wrong size was never caught because swap{l,s} are macros.
    
        It's clear in the case of Xext/xres.c, that the author believed
        client_major/minor to be CARD16 from looking at the code in the first
        hunk.
    
        v2: dmx.c fixes from Keith.
    Reviewed-by: 's avatarPeter Harris <pharris@opentext.com>
    Signed-off-by: 's avatarMatt Turner <mattst88@gmail.com>
    
     commit dab064fa5e0b1f5c67222562ad5367005832cba1
     Author: Andrea Canciani <ranma42@gmail.com>
     Date:   Tue Nov 2 20:10:32 2010 +0100
    
        render: Fix byteswapping of gradient stops
    
        The function swapStops repeatedly swaps the color components as
        CARD16, but incorrectly steps over them as if they were CARD32.
    
        This causes half of the stops not to be swapped at all and some
        unrelated data be swapped instead.
    Signed-off-by: 's avatarAndrea Canciani <ranma42@gmail.com>
    Reviewed-by: 's avatarSoren Sandmann <sandmann@daimi.au.dk>
    Reviewed-by: 's avatarJulien Cristau <jcristau@debian.org>
    Signed-off-by: 's avatarKeith Packard <keithp@keithp.com>
    
     commit 54770c980cd2b91a8377f975a58ed69def5cfa42
     Author: Matt Turner <mattst88@gmail.com>
     Date:   Tue Aug 16 16:59:07 2011 -0400
    
        Cast char* buffers to swap functions
    Reviewed-by: 's avatarPeter Harris <pharris@opentext.com>
    Signed-off-by: 's avatarMatt Turner <mattst88@gmail.com>
    
     commit 6844bd2e63490870bab3c469eec6030354ef2865
     Author: Alan Coopersmith <alan.coopersmith@sun.com>
     Date:   Wed Jan 9 19:52:00 2008 -0800
    
        More Xv extension byte swapping fixes
    
     commit e46f6ddeccd082b2d507a1e8b57ea30e6b0a2c83
     Author: Michel Dänzer <michel@tungstengraphics.com>
     Date:   Wed Jan 16 14:24:22 2008 +0100
    
        Yet another Xv extension byte swapping fix.
    286d8326
rroutput.c 18.2 KB