From 2f0485e757d46206335d0181ae9d9705b29898d7 Mon Sep 17 00:00:00 2001 From: Patrick Porlan Date: Wed, 16 Mar 2011 10:24:23 +0100 Subject: ringbuffer: Switch ringbuffer to g_slice allocator This should allow for more efficient handling of equally sized buffers, in terms of alignment and recycling. --- gatchat/ringbuffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gatchat') diff --git a/gatchat/ringbuffer.c b/gatchat/ringbuffer.c index 27be3a82..775498cf 100644 --- a/gatchat/ringbuffer.c +++ b/gatchat/ringbuffer.c @@ -51,11 +51,11 @@ struct ring_buffer *ring_buffer_new(unsigned int size) if (real_size > MAX_SIZE) return NULL; - buffer = g_try_new(struct ring_buffer, 1); + buffer = g_slice_new(struct ring_buffer); if (buffer == NULL) return NULL; - buffer->buffer = g_try_new(unsigned char, real_size); + buffer->buffer = g_slice_alloc(real_size); if (buffer->buffer == NULL) { g_free(buffer); return NULL; @@ -202,6 +202,6 @@ void ring_buffer_free(struct ring_buffer *buf) if (buf == NULL) return; - g_free(buf->buffer); - g_free(buf); + g_slice_free1(buf->size, buf->buffer); + g_slice_free1(sizeof(struct ring_buffer), buf); } -- cgit v1.2.3