mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 09:46:02 +08:00
Fix spine::Vector copy assignment. (#2828)
This commit is contained in:
parent
7fd1e5340c
commit
b57acb040c
@ -39,6 +39,9 @@ namespace spine {
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
class SP_API Vector : public SpineObject {
|
class SP_API Vector : public SpineObject {
|
||||||
public:
|
public:
|
||||||
|
using size_type = size_t;
|
||||||
|
using value_type = T;
|
||||||
|
|
||||||
Vector() : _size(0), _capacity(0), _buffer(NULL) {
|
Vector() : _size(0), _capacity(0), _buffer(NULL) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,14 +121,14 @@ namespace spine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void addAll(Vector<T> &inValue) {
|
inline void addAll(const Vector<T> &inValue) {
|
||||||
ensureCapacity(this->size() + inValue.size());
|
ensureCapacity(this->size() + inValue.size());
|
||||||
for (size_t i = 0; i < inValue.size(); i++) {
|
for (size_t i = 0; i < inValue.size(); i++) {
|
||||||
add(inValue[i]);
|
add(inValue[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void clearAndAddAll(Vector<T> &inValue) {
|
inline void clearAndAddAll(const Vector<T> &inValue) {
|
||||||
this->clear();
|
this->clear();
|
||||||
this->addAll(inValue);
|
this->addAll(inValue);
|
||||||
}
|
}
|
||||||
@ -172,6 +175,12 @@ namespace spine {
|
|||||||
return _buffer[inIndex];
|
return _buffer[inIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline const T &operator[](size_t inIndex) const {
|
||||||
|
assert(inIndex < _size);
|
||||||
|
|
||||||
|
return _buffer[inIndex];
|
||||||
|
}
|
||||||
|
|
||||||
inline friend bool operator==(Vector<T> &lhs, Vector<T> &rhs) {
|
inline friend bool operator==(Vector<T> &lhs, Vector<T> &rhs) {
|
||||||
if (lhs.size() != rhs.size()) {
|
if (lhs.size() != rhs.size()) {
|
||||||
return false;
|
return false;
|
||||||
@ -190,6 +199,13 @@ namespace spine {
|
|||||||
return !(lhs == rhs);
|
return !(lhs == rhs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Vector &operator=(const Vector &inVector) {
|
||||||
|
if (this != &inVector) {
|
||||||
|
clearAndAddAll(inVector);
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
inline T *buffer() {
|
inline T *buffer() {
|
||||||
return _buffer;
|
return _buffer;
|
||||||
}
|
}
|
||||||
@ -223,7 +239,6 @@ namespace spine {
|
|||||||
buffer->~T();
|
buffer->~T();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vector &operator=(const Vector &inVector) {};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user