From 291929c933cb33a4261e61c2f6d4052eb64d015b Mon Sep 17 00:00:00 2001 From: Justin Carpentier <justin.carpentier@inria.fr> Date: Fri, 28 Jun 2019 13:05:53 +0200 Subject: [PATCH] core: make np_type static thhrough a Singleton --- include/eigenpy/details.hpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/include/eigenpy/details.hpp b/include/eigenpy/details.hpp index e6dfc50a..f0d32ade 100644 --- a/include/eigenpy/details.hpp +++ b/include/eigenpy/details.hpp @@ -89,18 +89,19 @@ namespace eigenpy static void switchToNumpyArray() { getInstance().CurrentNumpyType = getInstance().NumpyArrayObject; - getInstance().np_type = ARRAY_TYPE; + getType() = ARRAY_TYPE; } static void switchToNumpyMatrix() { getInstance().CurrentNumpyType = getInstance().NumpyMatrixObject; - getInstance().np_type = MATRIX_TYPE; + getType() = MATRIX_TYPE; } - static NP_TYPE getType() + static NP_TYPE & getType() { - return getInstance().np_type; + static NP_TYPE np_type; + return np_type; } protected: @@ -121,6 +122,7 @@ namespace eigenpy //NumpyAsMatrixType = reinterpret_cast<PyTypeObject*>(NumpyAsMatrixObject.ptr()); CurrentNumpyType = NumpyMatrixObject; // default conversion + getType() = MATRIX_TYPE; } bp::object CurrentNumpyType; @@ -131,11 +133,8 @@ namespace eigenpy //bp::object NumpyAsMatrixObject; PyTypeObject * NumpyAsMatrixType; bp::object NumpyArrayObject; PyTypeObject * NumpyArrayType; - static NP_TYPE np_type; }; - NP_TYPE NumpyType::np_type = MATRIX_TYPE; - template<typename MatType> struct EigenObjectAllocator { -- GitLab