Kaynağa Gözat

* when creating the reverse endian .bcm file, zero fill all the records, before
filling them in, so that the alignment space inside the records is filled with
zeros, instead of random uninitialized bytes

git-svn-id: trunk@36438 -

nickysn 8 yıl önce
ebeveyn
işleme
cad2b985d6
1 değiştirilmiş dosya ile 3 ekleme ve 0 silme
  1. 3 0
      utils/creumap.pp

+ 3 - 0
utils/creumap.pp

@@ -63,6 +63,7 @@ const
        BlockWrite(nef,AMap^.reversemap^,h.reverseMapLength);
        Close(nef);
 
+       FillChar(th,SizeOf(th),0);
        th.cpName := h.cpName;
        th.cp := SwapEndian(h.cp);
        th.mapLength := SwapEndian(h.mapLength);
@@ -72,6 +73,7 @@ const
        Rewrite(oef);
        BlockWrite(oef,th,SizeOf(th));
        pum := AMap^.map;
+       FillChar(um,SizeOf(um),0);
        for k := 0 to AMap^.lastchar do begin
           um.flag := pum^.flag;
           um.reserved := pum^.reserved;
@@ -80,6 +82,7 @@ const
           Inc(pum);
        end;
        prm := AMap^.reversemap;
+       FillChar(rm,SizeOf(rm),0);
        for k := 0 to AMap^.reversemaplength - 1 do begin
          rm.unicode := SwapEndian(prm^.unicode);
          rm.char1 := prm^.char1;