Browse Source

* 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 năm trước cách đây
mục cha
commit
cad2b985d6
1 tập tin đã thay đổi với 3 bổ sung0 xóa
  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;