* fixed range errors in case asizeint<>aint

git-svn-id: branches/jvmbackend@18411 -
This commit is contained in:
Jonas Maebe 2011-08-20 07:57:27 +00:00
parent bf0b8503c9
commit 87048f0cc8
2 changed files with 5 additions and 5 deletions

View File

@ -2584,7 +2584,7 @@ implementation
constructor tarraydef.create_from_pointer(def:tdef);
begin
{ use -1 so that the elecount will not overflow }
self.create(0,high(aint)-1,s32inttype);
self.create(0,high(asizeint)-1,s32inttype);
arrayoptions:=[ado_IsConvertedPointer];
setelementdef(def);
end;

View File

@ -1020,7 +1020,7 @@ implementation
if l>high(asizeint)-sym.fieldoffset then
begin
Message(sym_e_segment_too_large);
_datasize:=high(aint);
_datasize:=high(asizeint);
end
else
_datasize:=sym.fieldoffset+l;
@ -1194,8 +1194,8 @@ implementation
if bitsize>high(asizeint)-databitsize then
begin
Message(sym_e_segment_too_large);
_datasize:=high(aint);
databitsize:=high(aint);
_datasize:=high(asizeint);
databitsize:=high(asizeint);
end
else
begin
@ -1210,7 +1210,7 @@ implementation
if tfieldvarsym(sym).getsize>high(asizeint)-_datasize then
begin
Message(sym_e_segment_too_large);
_datasize:=high(aint);
_datasize:=high(asizeint);
end
else
_datasize:=tfieldvarsym(sym).fieldoffset+offset;