Merge pull request #34618 from qarmin/vector_please_dont_crash

Don't use constant reference in Vector push_back, insert and append_array
This commit is contained in:
Rémi Verschelde 2020-01-02 15:44:41 +01:00 committed by GitHub
commit bde52cc688
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View file

@ -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);

View file

@ -172,7 +172,10 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {
min = 0;
max = 0;
sparse_count = 0;
sparse_indices_buffer_view = 0;
sparse_indices_byte_offset = 0;
sparse_indices_component_type = 0;
sparse_values_buffer_view = 0;
sparse_values_byte_offset = 0;
}
};