mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-07 21:50:14 +02:00
Fixed bug #13540 where quickref of chm files was written incorrectly
git-svn-id: trunk@13475 -
This commit is contained in:
parent
c11243c83d
commit
af76a5368a
@ -99,7 +99,7 @@ uses chmbase;
|
||||
|
||||
function TDirectoryChunk.CanHold(ASize: Integer): Boolean;
|
||||
begin
|
||||
Result := CurrentPos < $1000-1 - ASize - (SizeOf(Word) * (FQuickRefEntries+2));
|
||||
Result := CurrentPos < $1000 - ASize - (SizeOf(Word) * (FQuickRefEntries+2));
|
||||
end;
|
||||
|
||||
function TDirectoryChunk.FreeSpace: Integer;
|
||||
@ -125,7 +125,7 @@ begin
|
||||
// now put a quickref entry if needed
|
||||
if ItemCount mod 5 = 0 then begin
|
||||
Inc(FQuickRefEntries);
|
||||
ReversePos := ($1000-1) - SizeOf(Word) - (SizeOf(Word)*FQuickRefEntries);
|
||||
ReversePos := ($1000) - SizeOf(Word) - (SizeOf(Word)*FQuickRefEntries);
|
||||
Value := NtoLE(Word(CurrentPos - Size));
|
||||
Move(Value, Buffer[ReversePos], SizeOf(Word));
|
||||
end;
|
||||
@ -134,10 +134,11 @@ end;
|
||||
procedure TDirectoryChunk.WriteChunkToStream(Stream: TStream);
|
||||
var
|
||||
ReversePos: Integer;
|
||||
TmpItemCount: Word;
|
||||
begin
|
||||
ReversePos := $1000-1 - SizeOf(Word);
|
||||
FItemCount := NtoLE(ItemCount);
|
||||
Move(ItemCount, Buffer[ReversePos], SizeOf(Word));
|
||||
ReversePos := $1000 - SizeOf(Word);
|
||||
TmpItemCount := NtoLE(Word(FItemCount));
|
||||
Move(TmpItemCount, Buffer[ReversePos], SizeOf(Word));
|
||||
|
||||
Stream.Write(Buffer[0], $1000);
|
||||
{$IFDEF DEBUG_CHM_CHUNKS}
|
||||
|
Loading…
Reference in New Issue
Block a user