From f26c366e9ba6dda24a080f7d0958f4915b584850 Mon Sep 17 00:00:00 2001 From: marco <marco@freepascal.org> Date: Sat, 10 Apr 2021 10:56:47 +0000 Subject: [PATCH] * use popcnt instead of countbits. * change countbits to popcnt in case it is used by others. suggestion by Bi0t1n, mantis 0038728 git-svn-id: trunk@49161 - --- packages/fcl-image/src/fpreadbmp.pp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/fcl-image/src/fpreadbmp.pp b/packages/fcl-image/src/fpreadbmp.pp index 65ac9c3a8a..f566af28d5 100644 --- a/packages/fcl-image/src/fpreadbmp.pp +++ b/packages/fcl-image/src/fpreadbmp.pp @@ -124,15 +124,8 @@ end; { Counts how many bits are set } function TFPReaderBMP.CountBits(Value : byte) : shortint; -var i,bits : shortint; begin - bits:=0; - for i:=0 to 7 do - begin - if (value mod 2)<>0 then inc(bits); - value:=value shr 1; - end; - Result:=bits; + Result:=PopCnt(Value); end; { If compression is bi_bitfields, there could be arbitrary masks for colors. @@ -156,7 +149,7 @@ begin inc(tmp); Mask:= Mask shr 1; end; - tmp:=tmp-(8-CountBits(Mask and $FF)); + tmp:=tmp-(8-popcnt(Mask and $FF)); Result:=tmp; end;