Subject Integer Overflows
Author hans@hoogstraat.ca
Hello Jason,

Hope I'm not repeating this messages, but it looked like
my messages have gone astray for a few days.

I found a small problem in IB_NodeList, which creates pesky
Integer Overflow errors in my tests.

===========================
procedure TIB_NodeList.SetRefToPos( var ARef: TIB_NodeRef;
const APos: longint;
AllowFetches: boolean );
function GetDif( const A, B: integer ): integer;
begin
try
Result := A - B;
except
on E: EIntOverflow do
Result := low( integer ); <---- –2147483648
end;
if Result = low( integer ) then
Result := high( integer )
else
if Result < 0 then
Result := -Result; <---- Overflow
end;
var
tmpRef: TIB_NodeRef;
===========================
InvalidNodeList is declared as -MaxInt = -2147483647 , however
Low(Integer) = –2147483648 and their exists no 2147483648, thus
Results := -Result; Overflows.

I just replaced
Result := low( integer );
by
Result := -high( integer );

and pesky Integer OverFlow Messages disappeared.

Best Regards
Hans