Robert Ancell <[email protected]> writes:

> The easiest way to check for the version of an extension is to send the 
> maximum
> possible version numbers in the QueryVersion request. The X server overflows 
> on
> these as it assumes you will send a reasonable version number.
> ---
>  include/misc.h | 18 +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/include/misc.h b/include/misc.h
> index 17de710..9c2f573 100644
> --- a/include/misc.h
> +++ b/include/misc.h
> @@ -259,15 +259,19 @@ extern void FormatDouble(double dbl, char *string);
>   * or a value greater than 0
>   */
>  static inline int
> -version_compare(uint16_t a_major, uint16_t a_minor,
> -                uint16_t b_major, uint16_t b_minor)
> +version_compare(uint32_t a_major, uint32_t a_minor,
> +                uint32_t b_major, uint32_t b_minor)

I don't see any particular reason to change the signature of this
function; the rest of the rewrite should work with 16-bit ints.

>  {
> -    int a, b;

Just changing these to uint32_t and fixing the test to

        if (a > b)
                return 1;
        if (a < b)
                return -1;
        return 0;

would suffice, assuming everything is 16-bit ints.

-- 
[email protected]

Attachment: pgp7q2GYwou97.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