static int Integer_OnCompare(Class _class, int * data1, int * data2)
{
int result = 0;
- if(*data1 > *data2)
- result = 1;
- else if(*data1 < *data2)
- result = -1;
+ if(!data1 && !data2) result = 0;
+ else if(data1 && !data2) result = 1;
+ else if(!data1 && data2) result = -1;
+ else if(*data1 > *data2) result = 1;
+ else if(*data1 < *data2) result = -1;
return result;
}
static int UInteger_OnCompare(Class _class, unsigned int * data1, unsigned int * data2)
{
int result = 0;
- if(data1 && !data2)
- result = 1;
- else if(!data1 && data2)
- result = -1;
- else if(!data1 && !data2)
- result = 0;
- else if(*data1 > *data2)
- result = 1;
- else if(*data1 < *data2)
- result = -1;
+ if(!data1 && !data2) result = 0;
+ else if(data1 && !data2) result = 1;
+ else if(!data1 && data2) result = -1;
+ else if(*data1 > *data2) result = 1;
+ else if(*data1 < *data2) result = -1;
return result;
}
static int Byte_OnCompare(Class _class, byte * data1, byte * data2)
{
int result = 0;
- if(*data1 > *data2)
- result = 1;
- else if(*data1 < *data2)
- result = -1;
+ if(!data1 && !data2) result = 0;
+ else if(data1 && !data2) result = 1;
+ else if(!data1 && data2) result = -1;
+ else if(*data1 > *data2) result = 1;
+ else if(*data1 < *data2) result = -1;
return result;
}
static int Float_OnCompare(Class _class, float * data1, float * data2)
{
int result = 0;
- if(*data1 > *data2)
- result = 1;
- else if(*data1 < *data2)
- result = -1;
+ if(!data1 && !data2) result = 0;
+ else if(data1 && !data2) result = 1;
+ else if(!data1 && data2) result = -1;
+ else if(*data1 > *data2) result = 1;
+ else if(*data1 < *data2) result = -1;
return result;
}
static int Double_OnCompare(Class _class, double * data1, double * data2)
{
int result = 0;
- if(*data1 > *data2)
- result = 1;
- else if(*data1 < *data2)
- result = -1;
+ if(!data1 && !data2) result = 0;
+ else if(data1 && !data2) result = 1;
+ else if(!data1 && data2) result = -1;
+ else if(*data1 > *data2) result = 1;
+ else if(*data1 < *data2) result = -1;
return result;
}