mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-08-29 14:22:49 -06:00
Core: fast_memcmp updated
git-svn-id: svn://ultimatepp.org/upp/trunk@9411 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
69275a5e1c
commit
c19b49362a
1 changed files with 3 additions and 5 deletions
|
|
@ -829,14 +829,13 @@ int fast_memcmp(const char *a, const char *b, size_t len)
|
|||
b += 8;
|
||||
len -= 8;
|
||||
}
|
||||
if(len >= 4) {
|
||||
if(len & 4) {
|
||||
uint32 a32 = *(uint32 *)a;
|
||||
uint32 b32 = *(uint32 *)b;
|
||||
if(a32 != b32)
|
||||
return SwapEndian32(a32) < SwapEndian32(b32) ? -1 : 1;
|
||||
a += 4;
|
||||
b += 4;
|
||||
len -= 4;
|
||||
}
|
||||
#else
|
||||
while(len >= 4) {
|
||||
|
|
@ -849,16 +848,15 @@ int fast_memcmp(const char *a, const char *b, size_t len)
|
|||
len -= 4;
|
||||
}
|
||||
#endif
|
||||
if(len >= 2) {
|
||||
if(len & 2) {
|
||||
uint16 a16 = *(uint16 *)a;
|
||||
uint16 b16 = *(uint16 *)b;
|
||||
if(a16 != b16)
|
||||
return SwapEndian16(a16) < SwapEndian16(b16) ? -1 : 1;
|
||||
a += 2;
|
||||
b += 2;
|
||||
len -= 2;
|
||||
}
|
||||
if(len && *a != *b)
|
||||
if((len & 1) != 0 && *a != *b)
|
||||
return *a < *b ? -1 : 1;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue