From 1d52bd4cad64d8d8662f40c11210b705351b43ab Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Thu, 8 Jan 2009 15:20:21 +0000 Subject: the big memory changes. the most important changes are: ei_aligned_malloc now really behaves like a malloc (untyped, doesn't call ctor) ei_aligned_new is the typed variant calling ctor EIGEN_MAKE_ALIGNED_OPERATOR_NEW now takes the class name as parameter --- test/dynalloc.cpp | 39 ++++----------------------------------- 1 file changed, 4 insertions(+), 35 deletions(-) (limited to 'test/dynalloc.cpp') diff --git a/test/dynalloc.cpp b/test/dynalloc.cpp index 3b0d703ae..d829008d5 100644 --- a/test/dynalloc.cpp +++ b/test/dynalloc.cpp @@ -25,38 +25,17 @@ #include "main.h" // test compilation with both a struct and a class... -struct MyStruct : WithAlignedOperatorNew +struct MyStruct { + EIGEN_MAKE_ALIGNED_OPERATOR_NEW(MyStruct) char dummychar; Vector4f avec; }; -class MyClassA : public WithAlignedOperatorNew -{ - public: - char dummychar; - Vector4f avec; -}; - -// ..as well as with some other base classes - -class MyBaseClass -{ - public: - char dummychar; - float afloat; -}; - -class MyClassB : public WithAlignedOperatorNew, public MyBaseClass -{ - public: - char dummychar; - Vector4f avec; -}; - -class MyClassC : public MyBaseClass, public WithAlignedOperatorNew +class MyClassA { public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW(MyClassA) char dummychar; Vector4f avec; }; @@ -85,8 +64,6 @@ void test_dynalloc() { MyStruct foo0; VERIFY(size_t(foo0.avec.data())%16==0); MyClassA fooA; VERIFY(size_t(fooA.avec.data())%16==0); - MyClassB fooB; VERIFY(size_t(fooB.avec.data())%16==0); - MyClassC fooC; VERIFY(size_t(fooC.avec.data())%16==0); } // dynamic allocation, single object @@ -94,12 +71,8 @@ void test_dynalloc() { MyStruct *foo0 = new MyStruct(); VERIFY(size_t(foo0->avec.data())%16==0); MyClassA *fooA = new MyClassA(); VERIFY(size_t(fooA->avec.data())%16==0); - MyClassB *fooB = new MyClassB(); VERIFY(size_t(fooB->avec.data())%16==0); - MyClassC *fooC = new MyClassC(); VERIFY(size_t(fooC->avec.data())%16==0); delete foo0; delete fooA; - delete fooB; - delete fooC; } // dynamic allocation, array @@ -108,12 +81,8 @@ void test_dynalloc() { MyStruct *foo0 = new MyStruct[N]; VERIFY(size_t(foo0->avec.data())%16==0); MyClassA *fooA = new MyClassA[N]; VERIFY(size_t(fooA->avec.data())%16==0); - MyClassB *fooB = new MyClassB[N]; VERIFY(size_t(fooB->avec.data())%16==0); - MyClassC *fooC = new MyClassC[N]; VERIFY(size_t(fooC->avec.data())%16==0); delete[] foo0; delete[] fooA; - delete[] fooB; - delete[] fooC; } // std::vector -- cgit v1.2.3