MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / update_adler32

Function update_adler32

src/lodepng.cpp:2036–2057  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2034/* ////////////////////////////////////////////////////////////////////////// */
2035
2036static unsigned update_adler32(unsigned adler, const unsigned char* data, unsigned len)
2037{
2038 unsigned s1 = adler & 0xffff;
2039 unsigned s2 = (adler >> 16) & 0xffff;
2040
2041 while(len > 0)
2042 {
2043 /*at least 5550 sums can be done before the sums overflow, saving a lot of module divisions*/
2044 unsigned amount = len > 5550 ? 5550 : len;
2045 len -= amount;
2046 while(amount > 0)
2047 {
2048 s1 += (*data++);
2049 s2 += s1;
2050 amount--;
2051 }
2052 s1 %= 65521;
2053 s2 %= 65521;
2054 }
2055
2056 return (s2 << 16) | s1;
2057}
2058
2059/*Return the adler32 of the bytes data[0..len-1]*/
2060static unsigned adler32(const unsigned char* data, unsigned len)

Callers 1

adler32Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected