MINOR: list: add a macro to detect that a list contains at most one element
The new LIST_ATMOST1() test verifies that the designated element is either alone or points on both sides to the same element. This is used to detect that a list has at most a single element, or that an element about to be deleted was the last one of a list.
This commit is contained in:
parent
bc236ad133
commit
1db3a390bb
|
@ -106,6 +106,13 @@
|
||||||
*/
|
*/
|
||||||
#define LIST_INLIST(el) ((el)->n != (el))
|
#define LIST_INLIST(el) ((el)->n != (el))
|
||||||
|
|
||||||
|
/* checks if the list element <el> has the same prev and next, i.e. it's either
|
||||||
|
* detached or alone in a list since (it points to itself or to a single other
|
||||||
|
* node). One can check that an element is strictly attached and alone by
|
||||||
|
* combining this with LIST_INLIST().
|
||||||
|
*/
|
||||||
|
#define LIST_ATMOST1(el) ((el)->n == (el)->p)
|
||||||
|
|
||||||
/* atomically checks if the list element's next pointer points to anything
|
/* atomically checks if the list element's next pointer points to anything
|
||||||
* different from itself, implying the element should be part of a list. This
|
* different from itself, implying the element should be part of a list. This
|
||||||
* usually is similar to LIST_INLIST() except that while that one might be
|
* usually is similar to LIST_INLIST() except that while that one might be
|
||||||
|
|
Loading…
Reference in New Issue