From 801321b2b266cecd0311728835d67fecab76d534 Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Mon, 18 Apr 2011 14:16:44 -0700 Subject: [PATCH] Implement g_byte_array_* in terms of GArray --- eglib/src/gbytearray.c | 54 +++++--------------------------------------------- 1 file changed, 5 insertions(+), 49 deletions(-) diff --git a/eglib/src/gbytearray.c b/eglib/src/gbytearray.c index daa4bcaa688..8702a4957a8 100644 --- a/eglib/src/gbytearray.c +++ b/eglib/src/gbytearray.c @@ -29,67 +29,23 @@ #include #include -#define INITIAL_CAPACITY 16 - -static void -ensure_capacity (GByteArray *array, - int capacity) -{ - int new_capacity = MAX (array->len, INITIAL_CAPACITY); - - if (capacity < array->len) - return; - - while (new_capacity < capacity) { - new_capacity <<= 1; - } - capacity = new_capacity; - array->data = (guint8*) g_realloc (array->data, capacity); - - memset (array->data + array->len, 0, capacity - array->len); - array->len = capacity; -} - GByteArray * g_byte_array_new () { - GByteArray *rv = g_new0 (GByteArray, 1); - - ensure_capacity (rv, INITIAL_CAPACITY); - - return rv; + return (GByteArray *) g_array_new (FALSE, TRUE, 1); } guint8* g_byte_array_free (GByteArray *array, gboolean free_segment) { - guint8* rv = NULL; - - g_return_val_if_fail (array != NULL, NULL); - - if (free_segment) - g_free (array->data); - else - rv = array->data; - - g_free (array); - - return rv; + return (guint8*) g_array_free ((GArray *)array, free_segment); } GByteArray * -g_array_append (GByteArray *array, - guint8 *data, +g_byte_array_append (GByteArray *array, + const guint8 *data, guint len) { - g_return_val_if_fail (array != NULL, NULL); - - ensure_capacity (array, array->len + len); - - memmove (array->data + array->len, data, len); - - array->len += len; - - return array; + return (GByteArray *)g_array_append_vals ((GArray *)array, data, len); } -- 2.11.4.GIT