summaryrefslogtreecommitdiff
path: root/rest/rest-params.c
diff options
context:
space:
mode:
authorGünther Wagner <info@gunibert.de>2022-08-14 12:01:54 +0000
committerGünther Wagner <info@gunibert.de>2022-08-14 12:01:54 +0000
commit5970778a89f33352b59da689cdb7d088555b1d53 (patch)
tree8e694ef316c5de9367e513f772bf3d096cae323b /rest/rest-params.c
parent910651d15ed71821d80b67bca8eb417e520731ac (diff)
parenta030c1f564dd971cd530d967dc94bf5a5bb217aa (diff)
downloadlibrest-master.tar.gz
Merge branch 'tintou/annotations' into 'master'HEADmaster
Several consumer-oriented fixes See merge request GNOME/librest!27
Diffstat (limited to 'rest/rest-params.c')
-rw-r--r--rest/rest-params.c26
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;
}