glib2/glib2-allocsize.patch

73 lines
3.1 KiB
Diff

Index: glib/gmacros.h
===================================================================
--- glib/gmacros.h.orig
+++ glib/gmacros.h
@@ -63,6 +63,14 @@
#define G_GNUC_NULL_TERMINATED
#endif
+#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#define G_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
+#define G_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
+#else
+#define G_GNUC_ALLOC_SIZE(x)
+#define G_GNUC_ALLOC_SIZE2(x)
+#endif
+
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
Index: glib/gmem.h
===================================================================
--- glib/gmem.h.orig
+++ glib/gmem.h
@@ -44,13 +44,13 @@ typedef struct _GMemVTable GMemVTable;
/* Memory allocation functions
*/
-gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC;
-gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC;
+gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
gpointer g_realloc (gpointer mem,
gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
void g_free (gpointer mem);
-gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC;
-gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC;
+gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
gpointer g_try_realloc (gpointer mem,
gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
Index: glib/gslice.h
===================================================================
--- glib/gslice.h.orig
+++ glib/gslice.h
@@ -29,10 +29,10 @@ G_BEGIN_DECLS
/* slices - fast allocation/release of small memory blocks
*/
-gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC;
-gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC;
+gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
+gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
gpointer g_slice_copy (gsize block_size,
- gconstpointer mem_block) G_GNUC_MALLOC;
+ gconstpointer mem_block) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
void g_slice_free1 (gsize block_size,
gpointer mem_block);
void g_slice_free_chain_with_offset (gsize block_size,
Index: glib/gstrfuncs.h
===================================================================
--- glib/gstrfuncs.h.orig
+++ glib/gstrfuncs.h
@@ -214,7 +214,7 @@ gchar* g_strescape (
const gchar *exceptions) G_GNUC_MALLOC;
gpointer g_memdup (gconstpointer mem,
- guint byte_size) G_GNUC_MALLOC;
+ guint byte_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(2);
/* NULL terminated string arrays.
* g_strsplit(), g_strsplit_set() split up string into max_tokens tokens