From 9aea530ac04a490648eda73ee5452a9385e33bdd Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Thu, 18 Jan 2024 12:27:46 +0000 Subject: [PATCH] gibaseinfo: Add initialiser macro for GIAttributeIter Makes it a little easier to use. Signed-off-by: Philip Withnall --- girepository/gibaseinfo.c | 4 ++-- girepository/gibaseinfo.h | 10 ++++++++++ girepository/gicallableinfo.c | 2 +- girepository/girwriter.c | 4 ++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/girepository/gibaseinfo.c b/girepository/gibaseinfo.c index 19406ac83..f656367a0 100644 --- a/girepository/gibaseinfo.c +++ b/girepository/gibaseinfo.c @@ -784,7 +784,7 @@ const char * gi_base_info_get_attribute (GIBaseInfo *info, const char *name) { - GIAttributeIter iter = { 0, }; + GIAttributeIter iter = GI_ATTRIBUTE_ITER_INIT; const char *curname, *curvalue; while (gi_base_info_iterate_attributes (info, &iter, &curname, &curvalue)) { @@ -872,7 +872,7 @@ _attribute_blob_find_first (GIBaseInfo *info, * void * print_attributes (GIBaseInfo *info) * { - * GIAttributeIter iter = { 0, }; + * GIAttributeIter iter = GI_ATTRIBUTE_ITER_INIT; * const char *name; * const char *value; * while (gi_base_info_iterate_attributes (info, &iter, &name, &value)) diff --git a/girepository/gibaseinfo.h b/girepository/gibaseinfo.h index 3a96076da..4e152fca6 100644 --- a/girepository/gibaseinfo.h +++ b/girepository/gibaseinfo.h @@ -48,6 +48,16 @@ typedef struct { void *_dummy[4]; } GIAttributeIter; +/** + * GI_ATTRIBUTE_ITER_INIT: + * + * Initialise a stack-allocated [type@GIRepository.AttributeIter] to a value + * suitable for passing to the first call to an ‘iterate’ function. + * + * Since: 2.80 + */ +#define GI_ATTRIBUTE_ITER_INIT { NULL, { NULL, } } + #define GI_TYPE_BASE_INFO (gi_base_info_get_type ()) /** diff --git a/girepository/gicallableinfo.c b/girepository/gicallableinfo.c index 17dbc50bd..098a1d3a0 100644 --- a/girepository/gicallableinfo.c +++ b/girepository/gicallableinfo.c @@ -426,7 +426,7 @@ const char * gi_callable_info_get_return_attribute (GICallableInfo *info, const char *name) { - GIAttributeIter iter = { 0, }; + GIAttributeIter iter = GI_ATTRIBUTE_ITER_INIT; const char *curname, *curvalue; while (gi_callable_info_iterate_return_attributes (info, &iter, &curname, &curvalue)) { diff --git a/girepository/girwriter.c b/girepository/girwriter.c index 0116795e4..84169f9d7 100644 --- a/girepository/girwriter.c +++ b/girepository/girwriter.c @@ -350,7 +350,7 @@ static void write_attributes (Xml *file, GIBaseInfo *info) { - GIAttributeIter iter = { 0, }; + GIAttributeIter iter = GI_ATTRIBUTE_ITER_INIT; const char *name, *value; while (gi_base_info_iterate_attributes (info, &iter, &name, &value)) @@ -365,7 +365,7 @@ static void write_return_value_attributes (Xml *file, GICallableInfo *info) { - GIAttributeIter iter = { 0, }; + GIAttributeIter iter = GI_ATTRIBUTE_ITER_INIT; const char *name, *value; while (gi_callable_info_iterate_return_attributes (info, &iter, &name, &value))