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