"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/common/classes/Hash.cpp" between
Firebird-3.0.2.32703-0.tar.bz2 and Firebird-3.0.4.33054-0.tar.bz2

About: Firebird is a relational database offering many ANSI SQL standard features.

Hash.cpp  (Firebird-3.0.2.32703-0.tar.bz2):Hash.cpp  (Firebird-3.0.4.33054-0.tar.bz2)
skipping to change at line 46 skipping to change at line 46
unsigned int CRC32C(unsigned int length, const unsigned char* value); unsigned int CRC32C(unsigned int length, const unsigned char* value);
namespace namespace
{ {
typedef unsigned int (*hash_func_t)(unsigned int length, const UCHAR* val ue); typedef unsigned int (*hash_func_t)(unsigned int length, const UCHAR* val ue);
unsigned int basicHash(unsigned int length, const UCHAR* value) unsigned int basicHash(unsigned int length, const UCHAR* value)
{ {
unsigned int hash_value = 0; unsigned int hash_value = 0;
UCHAR* p; UCHAR* const p = (UCHAR*) &hash_value;
const UCHAR* q = value; const UCHAR* q = value;
while (length >= 4) while (length >= 4)
{ {
p = (UCHAR*) &hash_value;
p[0] += q[0]; p[0] += q[0];
p[1] += q[1]; p[1] += q[1];
p[2] += q[2]; p[2] += q[2];
p[3] += q[3]; p[3] += q[3];
length -= 4; length -= 4;
q += 4; q += 4;
} }
p = (UCHAR*) &hash_value;
if (length >= 2) if (length >= 2)
{ {
p[0] += q[0]; p[0] += q[0];
p[1] += q[1]; p[1] += q[1];
length -= 2; length -= 2;
q += 2;
} }
if (length) if (length)
{ {
q += 2;
*p += *q; *p += *q;
} }
return hash_value; return hash_value;
} }
#if defined(_M_IX86) || defined(_M_X64) || defined(__x86_64__) || defined(__i386 __) #if defined(_M_IX86) || defined(_M_X64) || defined(__x86_64__) || defined(__i386 __)
bool SSE4_2Supported() bool SSE4_2Supported()
{ {
 End of changes. 5 change blocks. 
5 lines changed or deleted 2 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)