From c7d7f8e8fed38fee172d46705f50118ec9549fe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Corentin=20No=C3=ABl?= Date: Tue, 9 Aug 2022 11:07:14 +0200 Subject: params: Fix annotations with rest_params_iter_next The parameters are not optional as they are always accessed. They can be NULL when the iter is finished, actually always set it so that we are sure to always have an initialized variable --- rest/rest-params.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'rest') diff --git a/rest/rest-params.c b/rest/rest-params.c index f2ac286..bddd3c1 100644 --- a/rest/rest-params.c +++ b/rest/rest-params.c @@ -281,12 +281,14 @@ rest_params_iter_init (RestParamsIter *iter, /** * rest_params_iter_next: * @iter: an initialized #RestParamsIter - * @name: (out) (optional): a location to store the name, or %NULL - * @param: (out) (optional): a location to store the #RestParam, or %NULL + * @name: (out) (optional) (nullable) (transfer none): a location to store the name, + * or %NULL + * @param: (out) (optional) (nullable) (transfer none): a location to store the + * #RestParam, or %NULL * * Advances @iter and retrieves the name and/or parameter that are now pointed - * at as a result of this advancement. If FALSE is returned, @name and @param - * are not set and the iterator becomes invalid. + * at as a result of this advancement. If %FALSE is returned, @name and @param + * are set to %NULL and the iterator becomes invalid. * * Returns: %FALSE if the end of the #RestParams has been reached, %TRUE otherwise. **/ @@ -302,10 +304,20 @@ rest_params_iter_next (RestParamsIter *iter, iter->position++; cur = g_list_nth (iter->params->params, iter->position); - if (cur == NULL) return FALSE; + if (cur == NULL) + { + if (param) + *param = NULL; + if (name) + *name = NULL; + return FALSE; + } + + if (param) + *param = cur->data; + if (name) + *name = rest_param_get_name (*param); - *param = cur->data; - *name = rest_param_get_name (*param); return TRUE; } -- cgit v1.2.1