From 59ba350f34bc732172e2a31c69a10f607f8813b3 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Wed, 7 Nov 2018 04:09:37 -0500 Subject: [PATCH] Fix copy and move assigments of Array --- native/jni/utils/include/array.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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); }