unsigned char *cp = it->Data;
unsigned long overflow = 0x1ffUL << (((sizeof(ival) - 1) * 8) - 1);
unsigned long ofloinit;
+ bool isNegative = false;
- if (*cp & 0x80)
- ival = -1L;
+ if (*cp & 0x80) {
+ isNegative = true;
+ }
ofloinit = ival & overflow;
while (len) {
ival |= *cp++;
--len;
}
+
+ if (isNegative) {
+ ival *= -1L;
+ }
return ival;
}