-rw-r--r-- | libical/src/libical/icalmemory.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libical/src/libical/icalmemory.c b/libical/src/libical/icalmemory.c index 058ef37..18d7ef9 100644 --- a/libical/src/libical/icalmemory.c +++ b/libical/src/libical/icalmemory.c @@ -64,18 +64,18 @@ #include <stdio.h> /* for printf (debugging) */ #include <stdlib.h> /* for malloc, realloc */ #include <string.h> /* for memset(), strdup */ #ifdef WIN32 #include <windows.h> #endif -#define BUFFER_RING_SIZE 2500 -#define MIN_BUFFER_SIZE 200 +#define BUFFER_RING_SIZE 50 +#define MIN_BUFFER_SIZE 64 /* HACK. Not threadsafe */ typedef struct { int pos; void *ring[BUFFER_RING_SIZE]; } buffer_ring; @@ -208,18 +208,19 @@ void icalmemory_free_ring_byval(buffer_ring *br) { } free(br); } void icalmemory_free_ring() { buffer_ring *br; br = get_buffer_ring(); - icalmemory_free_ring_byval(br); + if ( global_buffer_ring == br ) + global_buffer_ring = 0; } /** Like strdup, but the buffer is on the ring. */ char* icalmemory_tmp_copy(const char* str) { |