From a6e149e41f359c4bf2ddab341dad20e7fb2bd9f3 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 14 Jan 2012 01:13:42 +0100 Subject: [PATCH] array: return_if_fail() if element size is 0 This is particular useful for: g_array_new (sizeof (MyStruct), FALSE, FALSE); because the correct incantation is g_array_new (FALSE, FALSE, sizeof (MyStruct)); and these warnings will trigger in the first situation. --- glib/garray.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/glib/garray.c b/glib/garray.c index 14aef84..5a5f9fa 100644 --- a/glib/garray.c +++ b/glib/garray.c @@ -162,7 +162,9 @@ g_array_new (gboolean zero_terminated, gboolean clear, guint elt_size) { - return (GArray*) g_array_sized_new (zero_terminated, clear, elt_size, 0); + g_return_val_if_fail (elt_size > 0, NULL); + + return g_array_sized_new (zero_terminated, clear, elt_size, 0); } /** @@ -185,7 +187,11 @@ GArray* g_array_sized_new (gboolean zero_terminated, guint elt_size, guint reserved_size) { - GRealArray *array = g_slice_new (GRealArray); + GRealArray *array; + + g_return_val_if_fail (elt_size > 0, NULL); + + array = g_slice_new (GRealArray); array->data = NULL; array->len = 0; -- 2.7.4