aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/dynalloc.cpp
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-01-08 15:20:21 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2009-01-08 15:20:21 +0000
commit1d52bd4cad64d8d8662f40c11210b705351b43ab (patch)
treec8fe83368e8e13ba7e8ec0c4ef078f5293cfea4d /test/dynalloc.cpp
parente2d2a7d2226b85569a9360b9738c15498fb454ac (diff)
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
Diffstat (limited to 'test/dynalloc.cpp')
-rw-r--r--test/dynalloc.cpp39
1 files changed, 4 insertions, 35 deletions
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