Add type casts

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@15492 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2003-01-04 10:23:21 +00:00
parent 9e7fe6bf12
commit 7866246713
2 changed files with 164 additions and 26 deletions

View file

@ -1,3 +1,9 @@
2003-01-04 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSConcreteNumber.m: ([compare:]) explicitly cast to promote
values to a type where comparisons can be done without loss of
precision.
2003-01-03 Richard Frith-Macdonald <rfm@gnu.org>
* base.make.in:

View file

@ -213,9 +213,25 @@
BOOL oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 1 && TYPE_ORDER < 11
#if GS_SIZEOF_CHAR < GS_SIZEOF_SHORT
#define PT (short)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_INT
#define PT (int)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_LONG
#define PT (long)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -225,9 +241,25 @@
signed char oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 0 && TYPE_ORDER < 11
#if GS_SIZEOF_CHAR < GS_SIZEOF_SHORT
#define PT (short)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_INT
#define PT (int)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_LONG
#define PT (long)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -237,9 +269,25 @@
unsigned char oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 1 && TYPE_ORDER < 11
#if GS_SIZEOF_CHAR < GS_SIZEOF_SHORT
#define PT (short)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_INT
#define PT (int)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_LONG
#define PT (long)
#elif GS_SIZEOF_CHAR < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -249,9 +297,23 @@
signed short oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 0 && TYPE_ORDER < 11
#if GS_SIZEOF_SHORT < GS_SIZEOF_INT
#define PT (int)
#elif GS_SIZEOF_SHORT < GS_SIZEOF_LONG
#define PT (long)
#elif GS_SIZEOF_SHORT < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -261,9 +323,23 @@
unsigned short oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 1 && TYPE_ORDER < 11
#if GS_SIZEOF_SHORT < GS_SIZEOF_INT
#define PT (int)
#elif GS_SIZEOF_SHORT < GS_SIZEOF_LONG
#define PT (long)
#elif GS_SIZEOF_SHORT < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -273,9 +349,21 @@
signed int oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 0 && TYPE_ORDER < 11
#if GS_SIZEOF_INT < GS_SIZEOF_LONG
#define PT (long)
#elif GS_SIZEOF_INT < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -285,9 +373,21 @@
unsigned int oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 1 && TYPE_ORDER < 11
#if GS_SIZEOF_INT < GS_SIZEOF_LONG
#define PT (long)
#elif GS_SIZEOF_INT < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -297,9 +397,19 @@
signed long oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 0 && TYPE_ORDER < 11
#if GS_SIZEOF_LONG < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -309,9 +419,19 @@
unsigned long oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 1 && TYPE_ORDER < 11
#if GS_SIZEOF_LONG < GS_SIZEOF_LONG_LONG
#define PT (long long)
#else
#define PT (double)
#endif
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -321,9 +441,15 @@
signed long long oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 0 && TYPE_ORDER < 11
#define PT (double)
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -333,9 +459,15 @@
unsigned long long oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
#undef PT
#if (TYPE_ORDER & 1) == 1 && TYPE_ORDER < 11
#define PT (double)
#else
#define PT
#endif
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -345,9 +477,9 @@
float oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;
@ -357,9 +489,9 @@
double oData;
(*(info->getValue))(other, @selector(getValue:), (void*)&oData);
if (data == oData)
if (PT data == PT oData)
return NSOrderedSame;
else if (data < oData)
else if (PT data < PT oData)
return NSOrderedAscending;
else
return NSOrderedDescending;