From: Arran Cudbard-Bell Date: Sun, 27 May 2018 17:07:55 +0000 (+0600) Subject: Use inline functions so we get type validation X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d562e503f98a23e973457fbb0f0701f67a9ade40;p=thirdparty%2Ffreeradius-server.git Use inline functions so we get type validation --- diff --git a/src/include/pair.h b/src/include/pair.h index e0385c7393c..c8555ab60ce 100644 --- a/src/include/pair.h +++ b/src/include/pair.h @@ -198,33 +198,39 @@ int fr_pair_mark_xlat(VALUE_PAIR *vp, char const *value); /* Searching and list modification */ -/** Initialise a cursor that will return only attributes matching the specified _da +void *fr_pair_iter_next_by_da(void **prev, void *to_eval, void *uctx); + +void *fr_pair_iter_next_by_ancestor(void **prev, void *to_eval, void *uctx); + +/** Initialise a cursor that will return only attributes matching the specified #fr_dict_attr_t * - * @param[in] _cursor to initialise. - * @param[in] _list to iterate over. - * @param[in] _da to search for. + * @param[in] cursor to initialise. + * @param[in] list to iterate over. + * @param[in] da to search for. * @return * - The first matching pair. * - NULL if no pairs match. */ -#define fr_cursor_iter_by_da_init(_cursor, _list, _da) \ - fr_cursor_talloc_iter_init((_cursor), (_list), fr_pair_iter_next_by_da, (_da), VALUE_PAIR) +static inline VALUE_PAIR *fr_cursor_iter_by_da_init(fr_cursor_t *cursor, + VALUE_PAIR **list, fr_dict_attr_t const *da) +{ + return fr_cursor_talloc_iter_init(cursor, list, fr_pair_iter_next_by_da, da, VALUE_PAIR); +} -/** Initialise a cursor that will return only attributes descended from the specified _da +/** Initialise a cursor that will return only attributes descended from the specified #fr_dict_attr_t * - * @param[in] _cursor to initialise. - * @param[in] _list to iterate over. - * @param[in] _da who's decentness to search for. + * @param[in] cursor to initialise. + * @param[in] list to iterate over. + * @param[in] da who's decentness to search for. * @return * - The first matching pair. * - NULL if no pairs match. */ -#define fr_cursor_iter_by_ancestor_init(_cursor, _list, _da) \ - fr_cursor_talloc_iter_init((_cursor), (_list), fr_pair_iter_next_by_ancestor, (_da), VALUE_PAIR) - -void *fr_pair_iter_next_by_da(void **prev, void *to_eval, void *uctx); - -void *fr_pair_iter_next_by_ancestor(void **prev, void *to_eval, void *uctx); +static inline VALUE_PAIR *fr_cursor_iter_by_ancestor_init(fr_cursor_t *cursor, + VALUE_PAIR **list, fr_dict_attr_t const *da) +{ + return fr_cursor_talloc_iter_init(cursor, list, fr_pair_iter_next_by_ancestor, da, VALUE_PAIR); +} VALUE_PAIR *fr_pair_find_by_da(VALUE_PAIR *head, fr_dict_attr_t const *da, int8_t tag);