mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 04:59:26 +02:00
* Some Range Checking fixes from Graeme Geldenhuys
git-svn-id: trunk@35094 -
This commit is contained in:
parent
d133f210ca
commit
9749ddc3bb
@ -52,7 +52,7 @@ type
|
||||
function ToUInt32(const ABytes: AnsiString): UInt32;
|
||||
function GetRawTable(const ATableName: AnsiString): TMemoryStream;
|
||||
function WriteFileHeader(AOutStream: TStream; const nTables: integer): uint32;
|
||||
function WriteTableHeader(AOutStream: TStream; const ATag: AnsiString; const AOffset: UInt32; const AData: TStream): uint32;
|
||||
function WriteTableHeader(AOutStream: TStream; const ATag: AnsiString; const AOffset: UInt32; const AData: TStream): int64;
|
||||
procedure WriteTableBodies(AOutStream: TStream; const ATables: TStringList);
|
||||
// AGlyphID is the original GlyphID in the original TTF file
|
||||
function GetCharIDfromGlyphID(const AGlyphID: uint32): uint32;
|
||||
@ -192,9 +192,9 @@ begin
|
||||
end;
|
||||
|
||||
function TFontSubsetter.WriteTableHeader(AOutStream: TStream; const ATag: AnsiString; const AOffset: UInt32;
|
||||
const AData: TStream): uint32;
|
||||
const AData: TStream): int64;
|
||||
var
|
||||
checksum: UInt32;
|
||||
checksum: Int64;
|
||||
n: integer;
|
||||
lByte: Byte;
|
||||
begin
|
||||
@ -804,7 +804,12 @@ begin
|
||||
|
||||
// idDelta
|
||||
for i := 0 to segCount-1 do
|
||||
WriteUInt16(Result, idDelta[i]);
|
||||
begin
|
||||
{$IFDEF gDEBUG}
|
||||
writeln(Format(' idDelta[%d] = %d', [i, idDelta[i]]));
|
||||
{$ENDIF}
|
||||
WriteInt16(Result, idDelta[i]);
|
||||
end;
|
||||
|
||||
// idRangeOffset
|
||||
for i := 0 to segCount-1 do
|
||||
@ -887,8 +892,8 @@ end;
|
||||
|
||||
procedure TFontSubsetter.SaveToStream(const AStream: TStream);
|
||||
var
|
||||
checksum: uint64;
|
||||
offset: uint64;
|
||||
checksum: int64;
|
||||
offset: int64;
|
||||
head: TStream;
|
||||
hhea: TStream;
|
||||
maxp: TStream;
|
||||
|
Loading…
Reference in New Issue
Block a user