From c4138503f9986e9afe032476daf033bd2d95b4d8 Mon Sep 17 00:00:00 2001 From: eihrul Date: Fri, 14 May 2010 02:04:42 +0000 Subject: added no_memory callback that allows overriding the default abort behavior --- callbacks.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'callbacks.c') 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; } -- cgit v1.2.3