summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2018-06-08 14:19:46 +0100
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2018-06-08 14:19:46 +0100
commitf30d95ee5feaa3a20ec2f7091324d21179edbbba (patch)
tree38ee6d067f488cb6364bed77e0139a70e8001fd0
parent430f9420cf0094635b0b0428a29ff7dfaf5718e8 (diff)
SL-915 - more on alignment for 32-bit
-rw-r--r--indra/llmath/llrigginginfo.cpp3
-rw-r--r--indra/llmath/llrigginginfo.h14
2 files changed, 16 insertions, 1 deletions
diff --git a/indra/llmath/llrigginginfo.cpp b/indra/llmath/llrigginginfo.cpp
index 73e1b096cb..885acb7670 100644
--- a/indra/llmath/llrigginginfo.cpp
+++ b/indra/llmath/llrigginginfo.cpp
@@ -86,7 +86,8 @@ void LLJointRiggingInfo::merge(const LLJointRiggingInfo& other)
LLJointRiggingInfoTab::LLJointRiggingInfoTab():
mRigInfoPtr(NULL),
- mSize(0)
+ mSize(0),
+ mNeedsUpdate(true)
{
}
diff --git a/indra/llmath/llrigginginfo.h b/indra/llmath/llrigginginfo.h
index b09746a5b7..b3d6bc2d19 100644
--- a/indra/llmath/llrigginginfo.h
+++ b/indra/llmath/llrigginginfo.h
@@ -55,6 +55,17 @@ public:
ll_aligned_free_16(ptr);
}
+ void* operator new[](size_t size)
+ {
+ return ll_aligned_malloc_16(size);
+ }
+
+ void operator delete[](void* ptr)
+ {
+ ll_aligned_free_16(ptr);
+ }
+
+
private:
LL_ALIGN_16(LLVector4a mRiggedExtents[2]);
bool mIsRiggedTo;
@@ -74,6 +85,8 @@ public:
void merge(const LLJointRiggingInfoTab& src);
LLJointRiggingInfo& operator[](S32 i) { return mRigInfoPtr[i]; }
const LLJointRiggingInfo& operator[](S32 i) const { return mRigInfoPtr[i]; };
+ bool needsUpdate() { return mNeedsUpdate; }
+ void setNeedsUpdate(bool val) { mNeedsUpdate = val; }
private:
// Not implemented
LLJointRiggingInfoTab& operator=(const LLJointRiggingInfoTab& src);
@@ -81,6 +94,7 @@ private:
LLJointRiggingInfo *mRigInfoPtr;
S32 mSize;
+ bool mNeedsUpdate;
};
#endif