anchor.diff:        indexToLocFormat: Integer;         // format needed to map from glyph index to glyph
   
         BufferSize: Int64;
  -      TtfBuffer: PByteArray;
   
         Function ttBYTE(Const offset: Cardinal): Byte;
         Function ttUSHORT(Const offset: Cardinal): Word;
  
positive.code: 
    // read file
    BufferSize := Source.Size;
    GetMem(TtfBuffer, BufferSize);
    Source.Read(@TtfBuffer[0], BufferSize);
    Data := TtfBuffer;
    FontStart := 0;
  
    cmap := stbtt__find_table(Data, FontStart, 'cmap');
    loca := stbtt__find_table(Data, FontStart, 'loca');
    head := stbtt__find_table(Data, FontStart, 'head');
    glyf := stbtt__find_table(Data, FontStart, 'glyf');
    hhea := stbtt__find_table(Data, FontStart, 'hhea');
    hmtx := stbtt__find_table(Data, FontStart, 'hmtx');
    kern := stbtt__find_table(Data, FontStart, 'kern');
  
    If (cmap=0) or (loca=0) or (head=0) or (glyf=0) or (hhea=0) or (hmtx=0) then
    Begin
  
negative.code:     Exit;
    End;
  
     t := stbtt__find_table('maxp');
  
     if t<>0 then
        numGlyphs := ttUSHORT(t+4)
  