| 436 | } |
| 437 | |
| 438 | intptr StringImpl::CompareOrdinalHelper(const char * strA, intptr lengthA, const char * strB, intptr lengthB) |
| 439 | { |
| 440 | const char* a = strA; |
| 441 | const char* b = strB; |
| 442 | intptr length = BF_MIN(lengthA, lengthB); |
| 443 | |
| 444 | while (length != 0) |
| 445 | { |
| 446 | int_strsize char8A = (int_strsize)*a; |
| 447 | int_strsize char8B = (int_strsize)*b; |
| 448 | |
| 449 | //Return the (case-insensitive) difference between them. |
| 450 | if (char8A != char8B) |
| 451 | return char8A - char8B; |
| 452 | |
| 453 | // Next char8 |
| 454 | a++; b++; |
| 455 | length--; |
| 456 | } |
| 457 | |
| 458 | return lengthA - lengthB; |
| 459 | } |
| 460 | |
| 461 | intptr StringImpl::CompareOrdinalHelper(const StringImpl & strA, intptr indexA, intptr lengthA, const StringImpl & strB, intptr indexB, intptr lengthB) |
| 462 | { |