Commit 8dce8ecf authored by Sergei Golubchik's avatar Sergei Golubchik

minor cleanup

parent 45236704
...@@ -276,18 +276,17 @@ void my_hash_sort_8bit_bin(CHARSET_INFO *cs __attribute__((unused)), ...@@ -276,18 +276,17 @@ void my_hash_sort_8bit_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len, const uchar *key, size_t len,
ulong *nr1, ulong *nr2) ulong *nr1, ulong *nr2)
{ {
const uchar *pos = key;
/* /*
Remove trailing spaces. We have to do this to be able to compare Remove trailing spaces. We have to do this to be able to compare
'A ' and 'A' as identical 'A ' and 'A' as identical
*/ */
key= skip_trailing_space(key, len); const uchar *end = skip_trailing_space(key, len);
for (; pos < (uchar*) key ; pos++) for (; key < end ; key++)
{ {
nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
((uint)*pos)) + (nr1[0] << 8); ((uint)*key)) + (nr1[0] << 8);
nr2[0]+=3; nr2[0]+=3;
} }
} }
...@@ -296,14 +295,12 @@ void my_hash_sort_8bit_bin(CHARSET_INFO *cs __attribute__((unused)), ...@@ -296,14 +295,12 @@ void my_hash_sort_8bit_bin(CHARSET_INFO *cs __attribute__((unused)),
void my_hash_sort_bin(CHARSET_INFO *cs __attribute__((unused)), void my_hash_sort_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len,ulong *nr1, ulong *nr2) const uchar *key, size_t len,ulong *nr1, ulong *nr2)
{ {
const uchar *pos = key; const uchar *end = key + len;
key+= len; for (; key < end ; key++)
for (; pos < (uchar*) key ; pos++)
{ {
nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
((uint)*pos)) + (nr1[0] << 8); ((uint)*key)) + (nr1[0] << 8);
nr2[0]+=3; nr2[0]+=3;
} }
} }
......
...@@ -680,18 +680,16 @@ void ...@@ -680,18 +680,16 @@ void
my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)), my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len,ulong *nr1, ulong *nr2) const uchar *key, size_t len,ulong *nr1, ulong *nr2)
{ {
const uchar *pos = key;
/* /*
Remove trailing spaces. We have to do this to be able to compare Remove trailing spaces. We have to do this to be able to compare
'A ' and 'A' as identical 'A ' and 'A' as identical
*/ */
key= skip_trailing_space(key, len); const uchar *end = skip_trailing_space(key, len);
for (; pos < (uchar*) key ; pos++) for (; key < end ; key++)
{ {
nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
((uint)*pos)) + (nr1[0] << 8); ((uint)*key)) + (nr1[0] << 8);
nr2[0]+=3; nr2[0]+=3;
} }
} }
......
...@@ -3311,17 +3311,15 @@ static ...@@ -3311,17 +3311,15 @@ static
void my_hash_sort_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)), void my_hash_sort_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len,ulong *nr1, ulong *nr2) const uchar *key, size_t len,ulong *nr1, ulong *nr2)
{ {
const uchar *pos = key; const uchar *end = key + len;
key+= len; while (end > key+1 && end[-1] == ' ' && end[-2] == '\0')
end-= 2;
while (key > pos+1 && key[-1] == ' ' && key[-2] == '\0')
key-= 2;
for (; pos < (uchar*) key ; pos++) for (; key < (uchar*) end ; key++)
{ {
nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
((uint)*pos)) + (nr1[0] << 8); ((uint)*key)) + (nr1[0] << 8);
nr2[0]+=3; nr2[0]+=3;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment