diff --git a/native/jni/utils/include/array.h b/native/jni/utils/include/array.h index 2e59c1e16..c64a70e00 100644 --- a/native/jni/utils/include/array.h +++ b/native/jni/utils/include/array.h @@ -67,17 +67,30 @@ public: T* _node; }; - T& operator = (const T& a) { + Array &operator=(const Array& a) { + delete [] _data; + _data = nullptr; _size = a._size; _capacity = a._capacity; if (_capacity) { _data = new T[_capacity]; for(int i = 0; i < _size; ++i) - _data[i] = utils::move(a[i]); + _data[i] = a[i]; } return *this; } + Array &operator=(Array&& a) { + delete [] _data; + _size = a._size; + _capacity = a._capacity; + _data = a._data; + a._size = 0; + a._capacity = 0; + a._data = nullptr; + return *this; + } + iterator begin() const { return iterator(_data); } iterator end() const { return iterator(_data + _size); }