diff options
author | eihrul <eihrul> | 2010-05-14 02:04:42 +0000 |
---|---|---|
committer | eihrul <eihrul> | 2010-05-14 02:04:42 +0000 |
commit | c4138503f9986e9afe032476daf033bd2d95b4d8 (patch) | |
tree | c6e6daf4f3145f830689156aaa8a93963872efe4 /callbacks.c | |
parent | 3ddbfb202d89675e1ba91c3cf053a0bd6ebbbf13 (diff) | |
download | enet-c4138503f9986e9afe032476daf033bd2d95b4d8.tar.gz enet-c4138503f9986e9afe032476daf033bd2d95b4d8.zip |
added no_memory callback that allows overriding the default abort behavior
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; } |