The list walking macros are relatively complex and the code they define have often 5 or 6 level of nesting. However, in a few places, a small rewrite of the code can save one nesting level and this help to make the code more readable. Make this change and reduce the indentation level. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- ptrlist.h | 65 ++++++++++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/ptrlist.h b/ptrlist.h index 8d2f99ce9..19bc130bc 100644 --- a/ptrlist.h +++ b/ptrlist.h @@ -157,44 +157,42 @@ static inline void *last_ptr_list(struct ptr_list *list) #define DO_FOR_EACH(head, ptr, __head, __list, __nr, PTR_ENTRY) do { \ __typeof__(head) __head = (head); \ __typeof__(head) __list = __head; \ - if (__head) { \ - do { int __nr; \ - for (__nr = 0; __nr < __list->nr; __nr++) { \ - do { \ - ptr = PTR_ENTRY(__list,__nr); \ - if (__list->rm && !ptr) \ - continue; \ - do { + if (!__head) break; \ + do { int __nr; \ + for (__nr = 0; __nr < __list->nr; __nr++) { \ + do { \ + ptr = PTR_ENTRY(__list,__nr); \ + if (__list->rm && !ptr) \ + continue; \ + do { #define DO_END_FOR_EACH(ptr, __head, __list, __nr) \ - } while (0); \ } while (0); \ - } \ - } while ((__list = __list->next) != __head); \ - } \ + } while (0); \ + } \ + } while ((__list = __list->next) != __head); \ } while (0) #define DO_FOR_EACH_REVERSE(head, ptr, __head, __list, __nr, PTR_ENTRY) do { \ __typeof__(head) __head = (head); \ __typeof__(head) __list = __head; \ - if (__head) { \ - do { int __nr; \ - __list = __list->prev; \ - __nr = __list->nr; \ - while (--__nr >= 0) { \ - do { \ - ptr = PTR_ENTRY(__list,__nr); \ - if (__list->rm && !ptr) \ - continue; \ - do { + if (!head) break; \ + do { int __nr; \ + __list = __list->prev; \ + __nr = __list->nr; \ + while (--__nr >= 0) { \ + do { \ + ptr = PTR_ENTRY(__list,__nr); \ + if (__list->rm && !ptr) \ + continue; \ + do { #define DO_END_FOR_EACH_REVERSE(ptr, __head, __list, __nr) \ - } while (0); \ } while (0); \ - } \ - } while (__list != __head); \ - } \ + } while (0); \ + } \ + } while (__list != __head); \ } while (0) #define DO_REVERSE(ptr, __head, __list, __nr, new, __newhead, \ @@ -204,15 +202,14 @@ static inline void *last_ptr_list(struct ptr_list *list) int __newnr = __nr; \ new = ptr; \ goto __inside##new; \ - if (1) { \ - do { \ - __newlist = __newlist->prev; \ - __newnr = __newlist->nr; \ + do { \ + __newlist = __newlist->prev; \ + __newnr = __newlist->nr; \ __inside##new: \ - while (--__newnr >= 0) { \ - do { \ - new = PTR_ENTRY(__newlist,__newnr); \ - do { + while (--__newnr >= 0) { \ + do { \ + new = PTR_ENTRY(__newlist,__newnr); \ + do { #define RECURSE_PTR_REVERSE(ptr, new) \ DO_REVERSE(ptr, __head##ptr, __list##ptr, __nr##ptr, \ -- 2.17.1 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html