Skip to content

Commit

Permalink
ecere/dataTypes: Fixed and standardized data type comparison methods …
Browse files Browse the repository at this point in the history
…to handle unset values
  • Loading branch information
jerstlouis committed Aug 2, 2012
1 parent b3e625c commit da2b348
Showing 1 changed file with 25 additions and 26 deletions.
51 changes: 25 additions & 26 deletions ecere/src/com/dataTypes.ec
Expand Up @@ -1142,10 +1142,11 @@ static void OnUnserialize(Class _class, void ** data, IOChannel channel)
static int Integer_OnCompare(Class _class, int * data1, int * data2) static int Integer_OnCompare(Class _class, int * data1, int * data2)
{ {
int result = 0; int result = 0;
if(*data1 > *data2) if(!data1 && !data2) result = 0;
result = 1; else if(data1 && !data2) result = 1;
else if(*data1 < *data2) else if(!data1 && data2) result = -1;
result = -1; else if(*data1 > *data2) result = 1;
else if(*data1 < *data2) result = -1;
return result; return result;
} }


Expand All @@ -1171,16 +1172,11 @@ static bool Integer_OnGetDataFromString(Class _class, int * data, char * string)
static int UInteger_OnCompare(Class _class, unsigned int * data1, unsigned int * data2) static int UInteger_OnCompare(Class _class, unsigned int * data1, unsigned int * data2)
{ {
int result = 0; int result = 0;
if(data1 && !data2) if(!data1 && !data2) result = 0;
result = 1; else if(data1 && !data2) result = 1;
else if(!data1 && data2) else if(!data1 && data2) result = -1;
result = -1; else if(*data1 > *data2) result = 1;
else if(!data1 && !data2) else if(*data1 < *data2) result = -1;
result = 0;
else if(*data1 > *data2)
result = 1;
else if(*data1 < *data2)
result = -1;
return result; return result;
} }


Expand All @@ -1205,10 +1201,11 @@ static bool UInteger_OnGetDataFromString(Class _class, unsigned int * data, char
static int Byte_OnCompare(Class _class, byte * data1, byte * data2) static int Byte_OnCompare(Class _class, byte * data1, byte * data2)
{ {
int result = 0; int result = 0;
if(*data1 > *data2) if(!data1 && !data2) result = 0;
result = 1; else if(data1 && !data2) result = 1;
else if(*data1 < *data2) else if(!data1 && data2) result = -1;
result = -1; else if(*data1 > *data2) result = 1;
else if(*data1 < *data2) result = -1;
return result; return result;
} }


Expand Down Expand Up @@ -1451,10 +1448,11 @@ static void RegisterClass_Integer(Module module)
static int Float_OnCompare(Class _class, float * data1, float * data2) static int Float_OnCompare(Class _class, float * data1, float * data2)
{ {
int result = 0; int result = 0;
if(*data1 > *data2) if(!data1 && !data2) result = 0;
result = 1; else if(data1 && !data2) result = 1;
else if(*data1 < *data2) else if(!data1 && data2) result = -1;
result = -1; else if(*data1 > *data2) result = 1;
else if(*data1 < *data2) result = -1;
return result; return result;
} }


Expand Down Expand Up @@ -1535,10 +1533,11 @@ static void RegisterClass_Float(Module module)
static int Double_OnCompare(Class _class, double * data1, double * data2) static int Double_OnCompare(Class _class, double * data1, double * data2)
{ {
int result = 0; int result = 0;
if(*data1 > *data2) if(!data1 && !data2) result = 0;
result = 1; else if(data1 && !data2) result = 1;
else if(*data1 < *data2) else if(!data1 && data2) result = -1;
result = -1; else if(*data1 > *data2) result = 1;
else if(*data1 < *data2) result = -1;
return result; return result;
} }


Expand Down

0 comments on commit da2b348

Please sign in to comment.