* fixed some off-by-1 errors in TOmfRecord_PUBDEF.EncodeTo

git-svn-id: trunk@30491 -
This commit is contained in:
nickysn 2015-04-07 23:02:32 +00:00
parent c4a8f22bc9
commit fb45d5e11b

View File

@ -865,7 +865,7 @@ implementation
RawRecord.RecordType:=RT_PUBDEF;
NextOfs:=RawRecord.WriteIndexedRef(0,BaseGroupIndex);
NextOfs:=RawRecord.WriteIndexedRef(0,BaseSegmentIndex);
NextOfs:=RawRecord.WriteIndexedRef(NextOfs,BaseSegmentIndex);
if BaseSegmentIndex=0 then
begin
RawRecord.RawData[NextOfs]:=Byte(BaseFrame);
@ -879,10 +879,9 @@ implementation
repeat
Inc(LastIncludedIndex);
Inc(Len,TOmfPublicNameElement(PublicNames[LastIncludedIndex]).GetLengthInFile(Is32Bit));
until (LastIncludedIndex>=PublicNames.Count) or ((Len+TOmfPublicNameElement(PublicNames[LastIncludedIndex+1]).GetLengthInFile(Is32Bit))>=RecordLengthLimit);
until (LastIncludedIndex>=(PublicNames.Count-1)) or ((Len+TOmfPublicNameElement(PublicNames[LastIncludedIndex+1]).GetLengthInFile(Is32Bit))>=RecordLengthLimit);
{ write the public names... }
NextOfs:=0;
for I:=NextIndex to LastIncludedIndex do
begin
PubName:=TOmfPublicNameElement(PublicNames[I]);
@ -903,7 +902,7 @@ implementation
end;
NextOfs:=RawRecord.WriteIndexedRef(NextOfs,PubName.TypeIndex);
end;
RawRecord.RecordLength:=Len;
RawRecord.RecordLength:=Len+1;
RawRecord.CalculateChecksumByte;
{ update NextIndex }