diff options
author | Günther Wagner <info@gunibert.de> | 2022-08-14 12:01:54 +0000 |
---|---|---|
committer | Günther Wagner <info@gunibert.de> | 2022-08-14 12:01:54 +0000 |
commit | 5970778a89f33352b59da689cdb7d088555b1d53 (patch) | |
tree | 8e694ef316c5de9367e513f772bf3d096cae323b /rest/rest-params.c | |
parent | 910651d15ed71821d80b67bca8eb417e520731ac (diff) | |
parent | a030c1f564dd971cd530d967dc94bf5a5bb217aa (diff) | |
download | librest-master.tar.gz |
Several consumer-oriented fixes
See merge request GNOME/librest!27
Diffstat (limited to 'rest/rest-params.c')
-rw-r--r-- | rest/rest-params.c | 26 |
1 files changed, 19 insertions, 7 deletions
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; } |