]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add inverse of fr_pair_list_to_dlist
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 18 Aug 2022 06:30:19 +0000 (13:30 +0700)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 18 Aug 2022 06:30:19 +0000 (13:30 +0700)
src/lib/util/pair.h
src/lib/util/pair_inline.c

index 112099b4b52a87a8a4d59a72afb46b12e621e9cf..6e08f7c592b6cab8e9d149b3007061442e7bf4b1 100644 (file)
@@ -598,7 +598,9 @@ bool                fr_pair_list_empty(fr_pair_list_t const *list) CC_HINT(nonnull);
 
 size_t         fr_pair_list_num_elements(fr_pair_list_t const *list) CC_HINT(nonnull);
 
-fr_dlist_head_t *fr_pair_list_dlist_head(fr_pair_list_t const *list) CC_HINT(nonnull);
+fr_dlist_head_t *fr_pair_list_to_dlist(fr_pair_list_t const *list) CC_HINT(nonnull);
+
+fr_pair_list_t *fr_pair_list_from_dlist(fr_dlist_head_t const *list) CC_HINT(nonnull);
 
 void           fr_pair_list_sort(fr_pair_list_t *list, fr_cmp_t cmp) CC_HINT(nonnull);
 
index 042ba347d96725e246c970f8d7bc5537a4451484..fe242b3f668d7f8108911230b955fc2473ad4762 100644 (file)
@@ -147,13 +147,23 @@ _INLINE size_t fr_pair_list_num_elements(fr_pair_list_t const *list)
  *
  * @param[in] list to get the head from
  *
- * @return number of entries in the list
+ * @return the pointer to the dlist wihin the pair list.
  */
-_INLINE fr_dlist_head_t *fr_pair_list_dlist_head(fr_pair_list_t const *list)
+_INLINE fr_dlist_head_t *fr_pair_list_to_dlist(fr_pair_list_t const *list)
 {
        return fr_pair_order_list_dlist_head(&list->order);
 }
 
+/** Get the pair list head from a dlist
+ *
+ * @param[in] list     The order list from a pair list.
+ * @return The pair list head.
+ */
+_INLINE fr_pair_list_t *fr_pair_list_from_dlist(fr_dlist_head_t const *list)
+{
+       return (uintptr_t)list - offsetof(fr_pair_list_t, order);
+}
+
 /** Appends a list of fr_pair_t from a temporary list to a destination list
  *
  * @param dst list to move pairs into