diff --git a/core/templates/cowdata.h b/core/templates/cowdata.h index d53548dd85a..ac651a695ab 100644 --- a/core/templates/cowdata.h +++ b/core/templates/cowdata.h @@ -436,20 +436,19 @@ Error CowData::_realloc(Size p_alloc_size) { template typename CowData::Size CowData::find(const T &p_val, Size p_from) const { - Size ret = -1; - - if (p_from < 0 || size() == 0) { - return ret; + if (p_from < 0) { + return -1; } - for (Size i = p_from; i < size(); i++) { - if (get(i) == p_val) { - ret = i; - break; + const Size s = size(); + + for (Size i = p_from; i < s; i++) { + if (_ptr[i] == p_val) { + return i; } } - return ret; + return -1; } template @@ -464,7 +463,7 @@ typename CowData::Size CowData::rfind(const T &p_val, Size p_from) const { } for (Size i = p_from; i >= 0; i--) { - if (get(i) == p_val) { + if (_ptr[i] == p_val) { return i; } } @@ -474,8 +473,9 @@ typename CowData::Size CowData::rfind(const T &p_val, Size p_from) const { template typename CowData::Size CowData::count(const T &p_val) const { Size amount = 0; - for (Size i = 0; i < size(); i++) { - if (get(i) == p_val) { + const Size s = size(); + for (Size i = 0; i < s; i++) { + if (_ptr[i] == p_val) { amount++; } }