diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-01-02 15:44:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-02 15:44:41 +0100 |
commit | bde52cc6881b3cb84602ffba1dede0a0180dbe4f (patch) | |
tree | f67c59395fd2f19a6308ebb95ad9522a315e29f0 /core | |
parent | 0dc267634be5f210047756d1b06ea6fb2b83e162 (diff) | |
parent | 1ac701cc378d002817463d9e4101f8866254fe42 (diff) |
Merge pull request #34618 from qarmin/vector_please_dont_crash
Don't use constant reference in Vector push_back, insert and append_array
Diffstat (limited to 'core')
-rw-r--r-- | core/vector.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/core/vector.h b/core/vector.h index 7bf83d4cff..44add2c4d7 100644 --- a/core/vector.h +++ b/core/vector.h @@ -63,7 +63,7 @@ private: CowData<T> _cowdata; public: - bool push_back(const T &p_elem); + bool push_back(T p_elem); void remove(int p_index) { _cowdata.remove(p_index); } void erase(const T &p_val) { @@ -83,10 +83,10 @@ public: _FORCE_INLINE_ int size() const { return _cowdata.size(); } 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); } + Error insert(int p_pos, 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); + void append_array(Vector<T> p_other); template <class C> void sort_custom() { @@ -136,7 +136,7 @@ void Vector<T>::invert() { } template <class T> -void Vector<T>::append_array(const Vector<T> &p_other) { +void Vector<T>::append_array(Vector<T> p_other) { const int ds = p_other.size(); if (ds == 0) return; @@ -147,7 +147,7 @@ void Vector<T>::append_array(const Vector<T> &p_other) { } template <class T> -bool Vector<T>::push_back(const T &p_elem) { +bool Vector<T>::push_back(T p_elem) { Error err = resize(size() + 1); ERR_FAIL_COND_V(err, true); |