ctypedef void* (*malloc_t)(size_t n) ctypedef void (*free_t)(void *p) cdef class PyMalloc: cdef malloc_t malloc cdef void _set(self, malloc_t malloc) cdef PyMalloc WrapMalloc(malloc_t malloc) cdef class PyFree: cdef free_t free cdef void _set(self, free_t free) cdef PyFree WrapFree(free_t free) cdef class Pool: cdef readonly size_t size cdef readonly dict addresses cdef readonly list refs cdef readonly PyMalloc pymalloc cdef readonly PyFree pyfree cdef void* alloc(self, size_t number, size_t size) except NULL cdef void free(self, void* addr) except * cdef void* realloc(self, void* addr, size_t n) except NULL cdef class Address: cdef void* ptr cdef readonly PyMalloc pymalloc cdef readonly PyFree pyfree