From 5422996dfddf69d0f3694dfa4b0ad6cda3a10d5a Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Wed, 31 Mar 2021 13:47:55 -0500
Subject: [PATCH] Bring back PyCUDA mempool compat bits

---
 src/mempool.hpp | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/mempool.hpp b/src/mempool.hpp
index 212a80f4..44f0fd64 100644
--- a/src/mempool.hpp
+++ b/src/mempool.hpp
@@ -50,6 +50,12 @@ namespace PYGPU_PACKAGE
     mp_noncopyable& operator=(const mp_noncopyable&) = delete;
   };
 
+#ifdef PYGPU_PYCUDA
+#define PYGPU_SHARED_PTR boost::shared_ptr
+#else
+#define PYGPU_SHARED_PTR std::shared_ptr
+#endif
+
   template <class T>
   inline T signed_left_shift(T x, signed shift_amount)
   {
@@ -339,8 +345,10 @@ namespace PYGPU_PACKAGE
       bool try_to_free_memory()
       {
         // free largest stuff first
-        for (bin_pair_t &bin_pair: reverse(m_container))
+        for (typename container_t::reverse_iterator it = m_container.rbegin();
+            it != m_container.rend(); ++it)
         {
+          bin_pair_t &bin_pair = *it;
           bin_t &bin = bin_pair.second;
 
           if (bin.size())
@@ -392,14 +400,14 @@ namespace PYGPU_PACKAGE
       typedef typename Pool::size_type size_type;
 
     private:
-      std::shared_ptr<pool_type> m_pool;
+      PYGPU_SHARED_PTR<pool_type> m_pool;
 
       pointer_type m_ptr;
       size_type m_size;
       bool m_valid;
 
     public:
-      pooled_allocation(std::shared_ptr<pool_type> p, size_type size)
+      pooled_allocation(PYGPU_SHARED_PTR<pool_type> p, size_type size)
         : m_pool(p), m_ptr(p->allocate(size)), m_size(size), m_valid(true)
       { }
 
-- 
GitLab