aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Hauke Heibel <hauke.heibel@gmail.com>2010-04-17 16:08:17 +0200
committerGravatar Hauke Heibel <hauke.heibel@gmail.com>2010-04-17 16:08:17 +0200
commitcc33a5614018db36f7888a7c36b767563b50bb92 (patch)
tree501513f20eac662a4e76b428b6dc28ffd2051160 /Eigen
parent0326a51f897184eae20194c7c38750a504cbd994 (diff)
Added MSVC stack allocation support.
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/Core/util/Memory.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/Eigen/src/Core/util/Memory.h b/Eigen/src/Core/util/Memory.h
index 1cd231329..e8af03144 100644
--- a/Eigen/src/Core/util/Memory.h
+++ b/Eigen/src/Core/util/Memory.h
@@ -425,10 +425,15 @@ inline static Integer ei_first_aligned(const Scalar* array, Integer size)
* \endcode
*/
#if (defined __linux__)
- #define ei_aligned_stack_alloc(SIZE) (SIZE<=EIGEN_STACK_ALLOCATION_LIMIT) \
+ #define ei_aligned_stack_alloc(SIZE) (SIZE<=EI GEN_STACK_ALLOCATION_LIMIT) \
? alloca(SIZE) \
: ei_aligned_malloc(SIZE)
#define ei_aligned_stack_free(PTR,SIZE) if(SIZE>EIGEN_STACK_ALLOCATION_LIMIT) ei_aligned_free(PTR)
+#elif defined(_MSC_VER)
+ #define ei_aligned_stack_alloc(SIZE) (SIZE<=EIGEN_STACK_ALLOCATION_LIMIT) \
+ ? _alloca(SIZE) \
+ : ei_aligned_malloc(SIZE)
+ #define ei_aligned_stack_free(PTR,SIZE) if(SIZE>EIGEN_STACK_ALLOCATION_LIMIT) ei_aligned_free(PTR)
#else
#define ei_aligned_stack_alloc(SIZE) ei_aligned_malloc(SIZE)
#define ei_aligned_stack_free(PTR,SIZE) ei_aligned_free(PTR)