summaryrefslogtreecommitdiffabout
path: root/libical
Side-by-side diff
Diffstat (limited to 'libical') (more/less context) (ignore whitespace changes)
-rw-r--r--libical/src/libical/icalmemory.c7
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)
{