summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/greenlet/greenlet_allocator.hpp
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
commit12cf076118570eebbff08c6b3090e0d4798447a1 (patch)
tree3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/greenlet/greenlet_allocator.hpp
parentc45662ff3923b34614ddcc8feb9195541166dcc5 (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.hpp63
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