From f903069c139df58d1ba855f7cf02c4a2d4e51dc3 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Tue, 27 Sep 2016 18:28:55 +0200 Subject: Optimize VersionHash() to not need temporary copy of input Stop copying stuff, and just parse the bytes one by-one to the newly created AddCRC16Byte. This improves the instruction count for an update run from 720,850,121 to 455,801,749 according to callgrind. --- apt-pkg/contrib/crc-16.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'apt-pkg/contrib/crc-16.cc') diff --git a/apt-pkg/contrib/crc-16.cc b/apt-pkg/contrib/crc-16.cc index f5df2d8b1..250d7664a 100644 --- a/apt-pkg/contrib/crc-16.cc +++ b/apt-pkg/contrib/crc-16.cc @@ -64,6 +64,10 @@ static unsigned short const crc16_table[256] = /* Recompute the FCS with one more character appended. */ #define CalcFCS(fcs, c) (((fcs) >> 8) ^ crc16_table[((fcs) ^ (c)) & 0xff]) +unsigned short AddCRC16Byte(unsigned short fcs, unsigned char byte) +{ + return CalcFCS(fcs, byte); +} unsigned short AddCRC16(unsigned short fcs, void const *Buf, unsigned long long len) { -- cgit v1.2.3