diff options
Diffstat (limited to 'callbacks.c')
-rw-r--r-- | callbacks.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/callbacks.c b/callbacks.c index 7f960af..250b967 100644 --- a/callbacks.c +++ b/callbacks.c @@ -5,14 +5,11 @@ #define ENET_BUILDING_LIB 1 #include "enet/enet.h" -static ENetCallbacks callbacks = { malloc, free, rand }; +static ENetCallbacks callbacks = { malloc, free, rand, abort }; int enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits) { - if (version != ENET_VERSION) - return -1; - if (inits -> malloc != NULL || inits -> free != NULL) { if (inits -> malloc == NULL || inits -> free == NULL) @@ -25,6 +22,12 @@ enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits if (inits -> rand != NULL) callbacks.rand = inits -> rand; + if (version >= ENET_VERSION_CREATE(1, 2, 2)) + { + if (inits -> no_memory != NULL) + callbacks.no_memory = inits -> no_memory; + } + return enet_initialize (); } @@ -34,7 +37,7 @@ enet_malloc (size_t size) void * memory = callbacks.malloc (size); if (memory == NULL) - abort (); + callbacks.no_memory (); return memory; } |