diff options
author | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:17:55 -0400 |
---|---|---|
committer | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:17:55 -0400 |
commit | 12cf076118570eebbff08c6b3090e0d4798447a1 (patch) | |
tree | 3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/greenlet/greenlet_allocator.hpp | |
parent | c45662ff3923b34614ddcc8feb9195541166dcc5 (diff) |
no venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/greenlet/greenlet_allocator.hpp')
-rw-r--r-- | venv/lib/python3.11/site-packages/greenlet/greenlet_allocator.hpp | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/venv/lib/python3.11/site-packages/greenlet/greenlet_allocator.hpp b/venv/lib/python3.11/site-packages/greenlet/greenlet_allocator.hpp deleted file mode 100644 index b452f54..0000000 --- a/venv/lib/python3.11/site-packages/greenlet/greenlet_allocator.hpp +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef GREENLET_ALLOCATOR_HPP -#define GREENLET_ALLOCATOR_HPP - -#define PY_SSIZE_T_CLEAN -#include <Python.h> -#include <memory> -#include "greenlet_compiler_compat.hpp" - - -namespace greenlet -{ - // This allocator is stateless; all instances are identical. - // It can *ONLY* be used when we're sure we're holding the GIL - // (Python's allocators require the GIL). - template <class T> - struct PythonAllocator : public std::allocator<T> { - - PythonAllocator(const PythonAllocator& UNUSED(other)) - : std::allocator<T>() - { - } - - PythonAllocator(const std::allocator<T> other) - : std::allocator<T>(other) - {} - - template <class U> - PythonAllocator(const std::allocator<U>& other) - : std::allocator<T>(other) - { - } - - PythonAllocator() : std::allocator<T>() {} - - T* allocate(size_t number_objects, const void* UNUSED(hint)=0) - { - void* p; - if (number_objects == 1) - p = PyObject_Malloc(sizeof(T)); - else - p = PyMem_Malloc(sizeof(T) * number_objects); - return static_cast<T*>(p); - } - - void deallocate(T* t, size_t n) - { - void* p = t; - if (n == 1) { - PyObject_Free(p); - } - else - PyMem_Free(p); - } - // This member is deprecated in C++17 and removed in C++20 - template< class U > - struct rebind { - typedef PythonAllocator<U> other; - }; - - }; -} - -#endif |