mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-07-22 18:54:36 +00:00
platform: add nmp_cache_iter_for_each_reverse() helper
This commit is contained in:
parent
53070705b0
commit
9c99c948fd
|
@ -120,4 +120,5 @@ ForEachMacros: ['c_list_for_each',
|
|||
'nm_platform_iter_obj_for_each',
|
||||
'nmp_cache_iter_for_each',
|
||||
'nmp_cache_iter_for_each_link',
|
||||
'nmp_cache_iter_for_each_reverse',
|
||||
]
|
||||
|
|
|
@ -777,6 +777,18 @@ nmp_cache_iter_next(NMDedupMultiIter *iter, const NMPObject **out_obj)
|
|||
return has_next;
|
||||
}
|
||||
|
||||
static inline gboolean
|
||||
nmp_cache_iter_prev(NMDedupMultiIter *iter, const NMPObject **out_obj)
|
||||
{
|
||||
gboolean has_prev;
|
||||
|
||||
has_prev = nm_dedup_multi_iter_prev(iter);
|
||||
nm_assert(!has_prev || NMP_OBJECT_IS_VALID(iter->current->obj));
|
||||
if (out_obj)
|
||||
*out_obj = has_prev ? iter->current->obj : NULL;
|
||||
return has_prev;
|
||||
}
|
||||
|
||||
static inline gboolean
|
||||
nmp_cache_iter_next_link(NMDedupMultiIter *iter, const NMPlatformLink **out_obj)
|
||||
{
|
||||
|
@ -792,6 +804,9 @@ nmp_cache_iter_next_link(NMDedupMultiIter *iter, const NMPlatformLink **out_obj)
|
|||
#define nmp_cache_iter_for_each(iter, head, obj) \
|
||||
for (nm_dedup_multi_iter_init((iter), (head)); nmp_cache_iter_next((iter), (obj));)
|
||||
|
||||
#define nmp_cache_iter_for_each_reverse(iter, head, obj) \
|
||||
for (nm_dedup_multi_iter_init_reverse((iter), (head)); nmp_cache_iter_prev((iter), (obj));)
|
||||
|
||||
#define nmp_cache_iter_for_each_link(iter, head, obj) \
|
||||
for (nm_dedup_multi_iter_init((iter), (head)); nmp_cache_iter_next_link((iter), (obj));)
|
||||
|
||||
|
|
Loading…
Reference in a new issue