Hi,

the Color 64bit errors are fixed.  A combination of testing against
LONG_MAX, and using Uint32.

Committed revision 2472.

cheers,


On Thu, Jul 2, 2009 at 11:52 PM, Hugo Arts <[email protected]> wrote:

> On Thu, Jul 2, 2009 at 2:55 PM, <[email protected]> wrote:
> >
> > Hi,
> >
> > On Thu, 2 Jul 2009 09:48:48 +1000, René Dudfield <[email protected]>
> wrote:
> >> Cool, thanks for the testing.
> >>
> >>
> >> On Thu, Jul 2, 2009 at 9:19 AM, Lorenz Quack<[email protected]>
> wrote:
> >>> Ok, so here goes my analysis of the failures in ColorTypeTest:
> >>> In src/color.c line 1435 (and some following lines) we bit shift each
> >> color
> >>> component and stuff them
> >>> in an unsigned long.
> >>
> >> Maybe this should be into a uint32 instead?
> >>
> >
> > Yes, that would correspond to my solution 1) only better because it
> ensures that it will have exactly 32 bit.
> > BTW, are these types uint32, UInt8, ... in the C-standard?
> >
> > yours
> > //Lorenz
> >
>
> No. ANSI C only defines the char, int, float, and double types, along
> with the short/long and signed/unsigned modifiers.
> The sizes of these types are not defined in the standard. ANSI only
> gives some minimum sizes, and mandates that
>
> short int <= int <= long int
> float <= double <= long double
>
> So, in theory, the size of your int type is completely platform
> dependent. In practice nearly every modern compiler uses the same
> sizes,
> char = 8, int = 32, float = 32, double = 64, but there are some
> differences between 32bit and 64bit architectures (e.g. long int is
> usually the same size as int on 32bit). Hence the often defined
> uint32, uint8 etc. types.
>
> See also http://en.wikipedia.org/wiki/C_data_types
>
> Hugo
>

Reply via email to