diff options
author | William Todd Stinson <stinson@lindenlab.com> | 2012-10-17 14:32:29 -0700 |
---|---|---|
committer | William Todd Stinson <stinson@lindenlab.com> | 2012-10-17 14:32:29 -0700 |
commit | 9da9b2d84be4c9bb2f0f8208ada6f67e8a53a7e8 (patch) | |
tree | b9f0da0557b8ec0e5a1d7599caa0389795457068 /indra/llmath/tests | |
parent | 2f8e4f240881fe990699872eafb6d7dceb5e5a9f (diff) | |
parent | a7f6dcaef7fb49901a2ebf0629e3089fa8cdad98 (diff) |
Pull and merge from ssh://stinson@hg.lindenlab.com/richard/viewer-chui/.
Diffstat (limited to 'indra/llmath/tests')
-rw-r--r-- | indra/llmath/tests/alignment_test.cpp | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/indra/llmath/tests/alignment_test.cpp b/indra/llmath/tests/alignment_test.cpp index 49c668d737..9105b1c1fd 100644 --- a/indra/llmath/tests/alignment_test.cpp +++ b/indra/llmath/tests/alignment_test.cpp @@ -34,16 +34,6 @@ #include "../llsimdmath.h" #include "../llvector4a.h" -void* operator new(size_t size) -{ - return ll_aligned_malloc_16(size); -} - -void operator delete(void *p) -{ - ll_aligned_free_16(p); -} - namespace tut { @@ -59,6 +49,27 @@ tut::alignment_test_t tut_alignment_test("LLAlignment"); LL_ALIGN_PREFIX(16) class MyVector4a { +public: + void* operator new(size_t size) + { + return ll_aligned_malloc_16(size); + } + + void operator delete(void *p) + { + ll_aligned_free_16(p); + } + + void* operator new[](size_t count) + { // try to allocate count bytes for an array + return ll_aligned_malloc_16(count); + } + + void operator delete[](void *p) + { + ll_aligned_free_16(p); + } + LLQuad mQ; } LL_ALIGN_POSTFIX(16); @@ -78,12 +89,8 @@ void alignment_test_object_t::test<1>() align_ptr = ll_aligned_malloc_16(sizeof(MyVector4a)); ensure("ll_aligned_malloc_16 failed", is_aligned(align_ptr,16)); -#if !LL_LINUX - // Skipping realloc alignment test on Linux because the ll_aligned_realloc_16() - // function is not implemented to ensure alignment on Linux (see llmemory.h) - align_ptr = ll_aligned_realloc_16(align_ptr,2*sizeof(MyVector4a)); + align_ptr = ll_aligned_realloc_16(align_ptr,2*sizeof(MyVector4a), sizeof(MyVector4a)); ensure("ll_aligned_realloc_16 failed", is_aligned(align_ptr,16)); -#endif // LL_LINUX ll_aligned_free_16(align_ptr); |