Fossil SCM
Correct some of the calculations and reduce code by reusing existing decoder.
Commit
08df9ea0de93afcb7046b09a1d633a41748e335d8d28d4112e3d1ba05381d9cd
Parent
f9d361804e3ced9…
1 file changed
+5
-9
+5
-9
| --- src/color.c | ||
| +++ src/color.c | ||
| @@ -297,25 +297,21 @@ | ||
| 297 | 297 | /* |
| 298 | 298 | ** Compute a hash on a branch or user name |
| 299 | 299 | */ |
| 300 | 300 | static unsigned int hash_of_name(const char *z){ |
| 301 | 301 | unsigned int h = 0; |
| 302 | - unsigned char c; | |
| 302 | + unsigned char digest[16]; | |
| 303 | 303 | int l = 0; |
| 304 | 304 | int i; |
| 305 | 305 | const char *zHash; |
| 306 | 306 | md5sum_init(); |
| 307 | 307 | md5sum_step_text(z, -1); |
| 308 | 308 | zHash = md5sum_finish(0); |
| 309 | - for( i=0; zHash[i]; i++ ){ | |
| 310 | - c = (i%2)==0 ? zHash[i] << 4 : zHash[i]; | |
| 311 | - if( ((i/8)%2)==0 ) { | |
| 312 | - h += c << (24 - (l * 8)); | |
| 313 | - }else{ | |
| 314 | - h ^= c << (24 - (l * 8)); | |
| 315 | - } | |
| 316 | - l = (l + 1) % 4; | |
| 309 | + decode16(zHash, (unsigned char*)digest, strlen(zHash)); | |
| 310 | + for( i=0; i<4; i++ ){ | |
| 311 | + l = i % 4; | |
| 312 | + h += digest[i] << (24 - (l * 8)); | |
| 317 | 313 | } |
| 318 | 314 | return h; |
| 319 | 315 | } |
| 320 | 316 | |
| 321 | 317 | /* |
| 322 | 318 |
| --- src/color.c | |
| +++ src/color.c | |
| @@ -297,25 +297,21 @@ | |
| 297 | /* |
| 298 | ** Compute a hash on a branch or user name |
| 299 | */ |
| 300 | static unsigned int hash_of_name(const char *z){ |
| 301 | unsigned int h = 0; |
| 302 | unsigned char c; |
| 303 | int l = 0; |
| 304 | int i; |
| 305 | const char *zHash; |
| 306 | md5sum_init(); |
| 307 | md5sum_step_text(z, -1); |
| 308 | zHash = md5sum_finish(0); |
| 309 | for( i=0; zHash[i]; i++ ){ |
| 310 | c = (i%2)==0 ? zHash[i] << 4 : zHash[i]; |
| 311 | if( ((i/8)%2)==0 ) { |
| 312 | h += c << (24 - (l * 8)); |
| 313 | }else{ |
| 314 | h ^= c << (24 - (l * 8)); |
| 315 | } |
| 316 | l = (l + 1) % 4; |
| 317 | } |
| 318 | return h; |
| 319 | } |
| 320 | |
| 321 | /* |
| 322 |
| --- src/color.c | |
| +++ src/color.c | |
| @@ -297,25 +297,21 @@ | |
| 297 | /* |
| 298 | ** Compute a hash on a branch or user name |
| 299 | */ |
| 300 | static unsigned int hash_of_name(const char *z){ |
| 301 | unsigned int h = 0; |
| 302 | unsigned char digest[16]; |
| 303 | int l = 0; |
| 304 | int i; |
| 305 | const char *zHash; |
| 306 | md5sum_init(); |
| 307 | md5sum_step_text(z, -1); |
| 308 | zHash = md5sum_finish(0); |
| 309 | decode16(zHash, (unsigned char*)digest, strlen(zHash)); |
| 310 | for( i=0; i<4; i++ ){ |
| 311 | l = i % 4; |
| 312 | h += digest[i] << (24 - (l * 8)); |
| 313 | } |
| 314 | return h; |
| 315 | } |
| 316 | |
| 317 | /* |
| 318 |