callbacks.c 815 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. @file callbacks.c
  3. @brief ENet callback functions
  4. */
  5. #define ENET_BUILDING_LIB 1
  6. #include "enet/enet.h"
  7. static ENetCallbacks callbacks =
  8. { malloc, free, abort };
  9. int enet_initialize_with_callbacks(ENetVersion version, const ENetCallbacks * inits)
  10. {
  11. if (version < ENET_VERSION_CREATE (1, 3, 0))
  12. return -1;
  13. if (inits->malloc != NULL || inits->free != NULL)
  14. {
  15. if (inits->malloc == NULL || inits->free == NULL)
  16. return -1;
  17. callbacks.malloc = inits->malloc;
  18. callbacks.free = inits->free;
  19. }
  20. if (inits->no_memory != NULL)
  21. callbacks.no_memory = inits->no_memory;
  22. return enet_initialize();
  23. }
  24. void* enet_malloc(size_t size)
  25. {
  26. void * memory = callbacks.malloc(size);
  27. if (memory == NULL)
  28. callbacks.no_memory();
  29. return memory;
  30. }
  31. void enet_free(void * memory)
  32. {
  33. callbacks.free(memory);
  34. }