alloc.c 521 B

123456789101112131415161718192021222324252627282930
  1. #include "private-libwebsockets.h"
  2. static void *_realloc(void *ptr, size_t size)
  3. {
  4. if (size)
  5. return (void *)realloc(ptr, size);
  6. else if (ptr)
  7. free(ptr);
  8. return NULL;
  9. }
  10. void *(*_lws_realloc)(void *ptr, size_t size) = _realloc;
  11. void *lws_realloc(void *ptr, size_t size)
  12. {
  13. return _lws_realloc(ptr, size);
  14. }
  15. void *lws_zalloc(size_t size)
  16. {
  17. void *ptr = _lws_realloc(NULL, size);
  18. if (ptr)
  19. memset(ptr, 0, size);
  20. return ptr;
  21. }
  22. void lws_set_allocator(void *(*cb)(void *ptr, size_t size))
  23. {
  24. _lws_realloc = cb;
  25. }