summaryrefslogtreecommitdiff
path: root/core/vector.h
diff options
context:
space:
mode:
authorIbrahn Sahir <ibrahn.sahir@gmail.com>2019-01-07 17:02:55 +0000
committerIbrahn Sahir <ibrahn.sahir@gmail.com>2019-01-07 17:34:44 +0000
commitcbb396c0064d77ec50a524241d22746c8b69bbdb (patch)
treee232fceee2453a3cd85ea20c44abc877b0f49b23 /core/vector.h
parentbcecf5626768c8399e9293fe12a25511eeb6c52d (diff)
Repair String lstrip and rstrip.
Background: lstrip and rstrip were broken by changes to String in: 0e29f7974b59e4440cf02e1388fb9d8ab2b5c5fd which removed it's access to Vector::find(CharType). Moved Vector's find up into CowData so it can be shared by Vector and String. Added String::find_char using CowData::find. Implemented rstrip and lstrip using find_char. Added a few tests for String rstrip and lstrip.
Diffstat (limited to 'core/vector.h')
-rw-r--r--core/vector.h17
1 files changed, 1 insertions, 16 deletions
diff --git a/core/vector.h b/core/vector.h
index 74dc9191d8..90b3d90826 100644
--- a/core/vector.h
+++ b/core/vector.h
@@ -84,6 +84,7 @@ public:
Error resize(int p_size) { return _cowdata.resize(p_size); }
_FORCE_INLINE_ const T &operator[](int p_index) const { return _cowdata.get(p_index); }
Error insert(int p_pos, const T &p_val) { return _cowdata.insert(p_pos, p_val); }
+ int find(const T &p_val, int p_from = 0) const { return _cowdata.find(p_val, p_from); }
void append_array(const Vector<T> &p_other);
@@ -115,22 +116,6 @@ public:
insert(i, p_val);
}
- int find(const T &p_val, int p_from = 0) const {
- int ret = -1;
- if (p_from < 0 || size() == 0)
- return ret;
-
- for (int i = p_from; i < size(); i++) {
-
- if (ptr()[i] == p_val) {
- ret = i;
- break;
- };
- };
-
- return ret;
- }
-
_FORCE_INLINE_ Vector() {}
_FORCE_INLINE_ Vector(const Vector &p_from) { _cowdata._ref(p_from._cowdata); }
inline Vector &operator=(const Vector &p_from) {