mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Unwrap the loop in the WAL hash function.
FossilOrigin-Name: eb94ae13206762a42ddad12e0d1461df83e9759e44a369f188cd3aad82f211c4
This commit is contained in:
33
src/wal.c
33
src/wal.c
@@ -746,19 +746,40 @@ static void walChecksumBytes(
|
||||
assert( nByte>=8 );
|
||||
assert( (nByte&0x00000007)==0 );
|
||||
assert( nByte<=65536 );
|
||||
assert( nByte%4==0 );
|
||||
|
||||
if( nativeCksum ){
|
||||
do {
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
}while( aData<aEnd );
|
||||
}else{
|
||||
if( !nativeCksum ){
|
||||
do {
|
||||
s1 += BYTESWAP32(aData[0]) + s2;
|
||||
s2 += BYTESWAP32(aData[1]) + s1;
|
||||
aData += 2;
|
||||
}while( aData<aEnd );
|
||||
}else if( nByte%64==0 ){
|
||||
do {
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
}while( aData<aEnd );
|
||||
}else{
|
||||
do {
|
||||
s1 += *aData++ + s2;
|
||||
s2 += *aData++ + s1;
|
||||
}while( aData<aEnd );
|
||||
}
|
||||
assert( aData==aEnd );
|
||||
|
||||
aOut[0] = s1;
|
||||
aOut[1] = s2;
|
||||
|
Reference in New Issue
Block a user