X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=garray.c;h=50cfac27e7b92c7a6b74804f8a1cc391202e1060;hb=61f2f04c41725909f8fe23a1a54064afdd88ffa8;hp=13dac564569006d5a654435c211ca683928e93e5;hpb=c9bd7542e1a28ba9de60048361c0a97d251833e7;p=platform%2Fupstream%2Fglib.git diff --git a/garray.c b/garray.c index 13dac56..50cfac2 100644 --- a/garray.c +++ b/garray.c @@ -55,7 +55,7 @@ struct _GRealArray g_array_elt_zero ((array), (array)->len, 1); \ }G_STMT_END -static gint g_nearest_pow (gint num); +static gint g_nearest_pow (gint num) G_GNUC_CONST; static void g_array_maybe_expand (GRealArray *array, gint len); @@ -102,16 +102,27 @@ GArray* g_array_sized_new (gboolean zero_terminated, return (GArray*) array; } -void +gchar* g_array_free (GArray *array, gboolean free_segment) { + gchar* segment; + + g_return_val_if_fail (array, NULL); + if (free_segment) - g_free (array->data); + { + g_free (array->data); + segment = NULL; + } + else + segment = array->data; G_LOCK (array_mem_chunk); g_mem_chunk_free (array_mem_chunk, array); G_UNLOCK (array_mem_chunk); + + return segment; } GArray* @@ -335,18 +346,27 @@ g_ptr_array_sized_new (guint reserved_size) return (GPtrArray*) array; } -void +gpointer* g_ptr_array_free (GPtrArray *array, gboolean free_segment) { - g_return_if_fail (array); + gpointer* segment; + + g_return_val_if_fail (array, NULL); if (free_segment) - g_free (array->pdata); + { + g_free (array->pdata); + segment = NULL; + } + else + segment = array->pdata; G_LOCK (ptr_array_mem_chunk); g_mem_chunk_free (ptr_array_mem_chunk, array); G_UNLOCK (ptr_array_mem_chunk); + + return segment; } static void @@ -520,10 +540,10 @@ GByteArray* g_byte_array_sized_new (guint reserved_size) return (GByteArray*) g_array_sized_new (FALSE, FALSE, 1, reserved_size); } -void g_byte_array_free (GByteArray *array, +guint8* g_byte_array_free (GByteArray *array, gboolean free_segment) { - g_array_free ((GArray*) array, free_segment); + return (guint8*) g_array_free ((GArray*) array, free_segment); } GByteArray* g_byte_array_append (GByteArray *array,