diff --git a/glib/gslice.h b/glib/gslice.h index 411140f62..e50980959 100644 --- a/glib/gslice.h +++ b/glib/gslice.h @@ -60,16 +60,17 @@ void g_slice_free_chain_with_offset (gsize block_size, #define g_slice_dup(type, mem) \ (1 ? (type*) g_slice_copy (sizeof (type), (mem)) \ : ((void) ((type*) 0 == (mem)), (type*) 0)) -#define g_slice_free(type, mem) do { \ +#define g_slice_free(type, mem) \ +G_STMT_START { \ if (1) g_slice_free1 (sizeof (type), (mem)); \ else (void) ((type*) 0 == (mem)); \ -} while (0) -#define g_slice_free_chain(type, mem_chain, next) do { \ +} G_STMT_END +#define g_slice_free_chain(type, mem_chain, next) \ +G_STMT_START { \ if (1) g_slice_free_chain_with_offset (sizeof (type), \ (mem_chain), G_STRUCT_OFFSET (type, next)); \ else (void) ((type*) 0 == (mem_chain)); \ -} while (0) - +} G_STMT_END /* --- internal debugging API --- */ typedef enum {