You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
779 B

4 years ago
  1. ctypedef void* (*malloc_t)(size_t n)
  2. ctypedef void (*free_t)(void *p)
  3. cdef class PyMalloc:
  4. cdef malloc_t malloc
  5. cdef void _set(self, malloc_t malloc)
  6. cdef PyMalloc WrapMalloc(malloc_t malloc)
  7. cdef class PyFree:
  8. cdef free_t free
  9. cdef void _set(self, free_t free)
  10. cdef PyFree WrapFree(free_t free)
  11. cdef class Pool:
  12. cdef readonly size_t size
  13. cdef readonly dict addresses
  14. cdef readonly list refs
  15. cdef readonly PyMalloc pymalloc
  16. cdef readonly PyFree pyfree
  17. cdef void* alloc(self, size_t number, size_t size) except NULL
  18. cdef void free(self, void* addr) except *
  19. cdef void* realloc(self, void* addr, size_t n) except NULL
  20. cdef class Address:
  21. cdef void* ptr
  22. cdef readonly PyMalloc pymalloc
  23. cdef readonly PyFree pyfree