mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 16:14:38 +00:00
use t3d methods, not raw std. shadowvar fix.
This commit is contained in:
parent
cd8c944989
commit
6fcb08bb86
1 changed files with 10 additions and 10 deletions
|
|
@ -94,7 +94,7 @@ struct VectorTraits;
|
||||||
template<typename T, U32 COUNT, typename Allocator>
|
template<typename T, U32 COUNT, typename Allocator>
|
||||||
struct VectorTraits<Vector<T, COUNT, Allocator>>
|
struct VectorTraits<Vector<T, COUNT, Allocator>>
|
||||||
{
|
{
|
||||||
static constexpr U32 COUNT = COUNT;
|
static constexpr U32 mTCount = COUNT;
|
||||||
using allocator = Allocator;
|
using allocator = Allocator;
|
||||||
using value_type = T;
|
using value_type = T;
|
||||||
};
|
};
|
||||||
|
|
@ -203,7 +203,7 @@ namespace VectorHelpers
|
||||||
U32 vecCapacity = vec.capacity();
|
U32 vecCapacity = vec.capacity();
|
||||||
if (!buffer || n == 0 || offset >= vecCapacity) return;
|
if (!buffer || n == 0 || offset >= vecCapacity) return;
|
||||||
if (offset + n > vecCapacity) n = vecCapacity - offset;
|
if (offset + n > vecCapacity) n = vecCapacity - offset;
|
||||||
if (!toBuffer && U32(0) == 0 && offset + n > vec.size()) vec.setSize(offset + n);
|
if (offset + n > vec.size()) vec.setSize(offset + n);
|
||||||
T* vecArray = vec.array();
|
T* vecArray = vec.array();
|
||||||
if (!moveElements) {
|
if (!moveElements) {
|
||||||
if (toBuffer) toBuffer(&vec, buffer, n, offset);
|
if (toBuffer) toBuffer(&vec, buffer, n, offset);
|
||||||
|
|
@ -561,7 +561,7 @@ namespace VectorHelpers
|
||||||
U32 len = n ? n : targLen - targOffset;
|
U32 len = n ? n : targLen - targOffset;
|
||||||
if (len == 0) return;
|
if (len == 0) return;
|
||||||
if constexpr (std::is_trivially_copyable<T>::value)
|
if constexpr (std::is_trivially_copyable<T>::value)
|
||||||
std::memmove(targ->array() + targOffset, src + srcOffset, len * sizeof(T));
|
dMemmove(targ->array() + targOffset, src + srcOffset, len * sizeof(T));
|
||||||
else
|
else
|
||||||
for (U32 i = 0; i < len; ++i)
|
for (U32 i = 0; i < len; ++i)
|
||||||
targ->array()[targOffset + i] = src[srcOffset + i];
|
targ->array()[targOffset + i] = src[srcOffset + i];
|
||||||
|
|
@ -578,7 +578,7 @@ namespace VectorHelpers
|
||||||
U32 len = n ? n : targLen - targOffset;
|
U32 len = n ? n : targLen - targOffset;
|
||||||
if (len == 0) return;
|
if (len == 0) return;
|
||||||
if constexpr (std::is_trivially_copyable<T>::value)
|
if constexpr (std::is_trivially_copyable<T>::value)
|
||||||
std::memmove(targ->array() + targOffset, src->array() + srcOffset, len * sizeof(T));
|
dMemmove(targ->array() + targOffset, src->array() + srcOffset, len * sizeof(T));
|
||||||
else if constexpr (std::is_move_assignable<T>::value && std::is_move_constructible<T>::value)
|
else if constexpr (std::is_move_assignable<T>::value && std::is_move_constructible<T>::value)
|
||||||
for (U32 i = 0; i < len; ++i) {
|
for (U32 i = 0; i < len; ++i) {
|
||||||
targ->array()[targOffset + i] = std::move(src->array()[srcOffset + i]);
|
targ->array()[targOffset + i] = std::move(src->array()[srcOffset + i]);
|
||||||
|
|
@ -612,7 +612,7 @@ namespace VectorHelpers
|
||||||
if constexpr (std::is_trivially_copyable<T>::value) {
|
if constexpr (std::is_trivially_copyable<T>::value) {
|
||||||
if constexpr (std::is_integral<T>::value || std::is_floating_point<T>::value || std::is_pointer<T>::value) {
|
if constexpr (std::is_integral<T>::value || std::is_floating_point<T>::value || std::is_pointer<T>::value) {
|
||||||
if (val == T()) {
|
if (val == T()) {
|
||||||
std::memset(vec->array() + offset, 0, n * sizeof(T));
|
dMemset(vec->array() + offset, 0, n * sizeof(T));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -640,7 +640,7 @@ namespace VectorHelpers
|
||||||
targ->setSize(targOffset + n);
|
targ->setSize(targOffset + n);
|
||||||
if (n == 0) return;
|
if (n == 0) return;
|
||||||
if constexpr (isPod)
|
if constexpr (isPod)
|
||||||
std::memmove(targ->array() + targOffset, src->array() + srcOffset, n * sizeof(T));
|
dMemmove(targ->array() + targOffset, src->array() + srcOffset, n * sizeof(T));
|
||||||
else if constexpr (std::is_copy_assignable<T>::value) {
|
else if constexpr (std::is_copy_assignable<T>::value) {
|
||||||
if (targ == src && std::abs((int)targOffset - (int)srcOffset) < (int)n) {
|
if (targ == src && std::abs((int)targOffset - (int)srcOffset) < (int)n) {
|
||||||
std::unique_ptr<T[]> temp(new T[n]);
|
std::unique_ptr<T[]> temp(new T[n]);
|
||||||
|
|
@ -755,7 +755,7 @@ namespace VectorHelpers
|
||||||
if (!vec || !src || n == 0) return;
|
if (!vec || !src || n == 0) return;
|
||||||
T* arr = vec->array();
|
T* arr = vec->array();
|
||||||
if constexpr (std::is_trivially_copyable<T>::value) {
|
if constexpr (std::is_trivially_copyable<T>::value) {
|
||||||
std::memmove(arr + destOffset, src, n * sizeof(T));
|
dMemmove(arr + destOffset, src, n * sizeof(T));
|
||||||
}
|
}
|
||||||
else if (arr + destOffset > src && arr + destOffset < src + n) {
|
else if (arr + destOffset > src && arr + destOffset < src + n) {
|
||||||
for (S32 i = n - 1; i >= 0; --i)
|
for (S32 i = n - 1; i >= 0; --i)
|
||||||
|
|
@ -1005,7 +1005,7 @@ public:
|
||||||
static EngineFieldTable::Field getElementCountField()
|
static EngineFieldTable::Field getElementCountField()
|
||||||
{
|
{
|
||||||
typedef Vector<T> ThisType;
|
typedef Vector<T> ThisType;
|
||||||
if constexpr (VectorTraits<ThisType>::COUNT == 0)
|
if constexpr (VectorTraits<ThisType>::mTCount == 0)
|
||||||
{
|
{
|
||||||
return EngineFieldTable::Field{
|
return EngineFieldTable::Field{
|
||||||
"elementCount", "", 1,
|
"elementCount", "", 1,
|
||||||
|
|
@ -1021,7 +1021,7 @@ public:
|
||||||
{
|
{
|
||||||
typedef Vector<T> ThisType;
|
typedef Vector<T> ThisType;
|
||||||
|
|
||||||
if constexpr (VectorTraits<ThisType>::COUNT == 0)
|
if constexpr (VectorTraits<ThisType>::mTCount == 0)
|
||||||
{
|
{
|
||||||
return EngineFieldTable::Field{
|
return EngineFieldTable::Field{
|
||||||
"arraySize", "", 1,
|
"arraySize", "", 1,
|
||||||
|
|
@ -1763,7 +1763,7 @@ template<typename SrcVec>
|
||||||
inline void Vector<T, COUNT, Allocator>::moveFrom(SrcVec& src)
|
inline void Vector<T, COUNT, Allocator>::moveFrom(SrcVec& src)
|
||||||
{
|
{
|
||||||
// Moves data from another vector, leaving it in a valid but unspecified state.
|
// Moves data from another vector, leaving it in a valid but unspecified state.
|
||||||
U32 n = mMin(COUNT, src.size());
|
U32 n = mMin(COUNT > 0 ? COUNT : this->arraySize(), src.size());
|
||||||
for (U32 i = 0; i < n; ++i)
|
for (U32 i = 0; i < n; ++i)
|
||||||
mArray[i] = std::move(src.mArray[i]);
|
mArray[i] = std::move(src.mArray[i]);
|
||||||
src.clear();
|
src.clear();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue