Jelajahi Sumber

* 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 tahun lalu
induk
melakukan
cad2b985d6
1 mengubah file dengan 3 tambahan dan 0 penghapusan
  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;