diff options
author | Bernhard Liebl <Bernhard.Liebl@gmx.org> | 2017-12-16 15:31:30 +0100 |
---|---|---|
committer | Bernhard Liebl <Bernhard.Liebl@gmx.org> | 2017-12-17 12:16:08 +0100 |
commit | b47ce5e5d6299533dd8ccafc85d2d2283dd27da6 (patch) | |
tree | e8e338d4a09f5c88d2002965992cf0c1192e1e29 /core/ustring.cpp | |
parent | 19af42b35312f41de025728c4003045484cc1542 (diff) | |
download | redot-engine-b47ce5e5d6299533dd8ccafc85d2d2283dd27da6.tar.gz |
Avoid string allocations in AlphCompare
Diffstat (limited to 'core/ustring.cpp')
-rw-r--r-- | core/ustring.cpp | 61 |
1 files changed, 3 insertions, 58 deletions
diff --git a/core/ustring.cpp b/core/ustring.cpp index 3a0708851e..9cd94ac919 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -64,26 +64,7 @@ bool CharString::operator<(const CharString &p_right) const { return p_right.length() != 0; } - const char *this_str = get_data(); - const char *that_str = p_right.get_data(); - while (true) { - - if (*that_str == 0 && *this_str == 0) - return false; //this can't be equal, sadly - else if (*this_str == 0) - return true; //if this is empty, and the other one is not, then we're less.. I think? - else if (*that_str == 0) - return false; //otherwise the other one is smaller.. - else if (*this_str < *that_str) //more than - return true; - else if (*this_str > *that_str) //less than - return false; - - this_str++; - that_str++; - } - - return false; //should never reach here anyway + return is_str_less(get_data(), p_right.get_data()); } const char *CharString::get_data() const { @@ -372,25 +353,7 @@ bool String::operator<(const CharType *p_str) const { if (empty()) return true; - const CharType *this_str = c_str(); - while (true) { - - if (*p_str == 0 && *this_str == 0) - return false; //this can't be equal, sadly - else if (*this_str == 0) - return true; //if this is empty, and the other one is not, then we're less.. I think? - else if (*p_str == 0) - return false; //otherwise the other one is smaller.. - else if (*this_str < *p_str) //more than - return true; - else if (*this_str > *p_str) //less than - return false; - - this_str++; - p_str++; - } - - return false; //should never reach here anyway + return is_str_less(c_str(), p_str); } bool String::operator<=(String p_str) const { @@ -405,25 +368,7 @@ bool String::operator<(const char *p_str) const { if (empty()) return true; - const CharType *this_str = c_str(); - while (true) { - - if (*p_str == 0 && *this_str == 0) - return false; //this can't be equal, sadly - else if (*this_str == 0) - return true; //if this is empty, and the other one is not, then we're less.. I think? - else if (*p_str == 0) - return false; //otherwise the other one is smaller.. - else if (*this_str < *p_str) //more than - return true; - else if (*this_str > *p_str) //less than - return false; - - this_str++; - p_str++; - } - - return false; //should never reach here anyway + return is_str_less(c_str(), p_str); } bool String::operator<(String p_str) const { |