/// These iterators only exit normally when the loop cursor is NULL, so there /// is no point to call of_node_put on the final value. /// // Confidence: High // Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2. // Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2. // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. // URL: http://coccinelle.lip6.fr/ // Comments: // Options: -no_includes -include_headers virtual patch @@ iterator name for_each_node_by_name; expression np,E; identifier l; @@ for_each_node_by_name(np,...) { ... when != break; when != goto l; } ... when != np = E - of_node_put(np); @@ iterator name for_each_node_by_type; expression np,E; identifier l; @@ for_each_node_by_type(np,...) { ... when != break; when != goto l; } ... when != np = E - of_node_put(np); @@ iterator name for_each_compatible_node; expression np,E; identifier l; @@ for_each_compatible_node(np,...) { ... when != break; when != goto l; } ... when != np = E - of_node_put(np); @@ iterator name for_each_matching_node; expression np,E; identifier l; @@ for_each_matching_node(np,...) { ... when != break; when != goto l; } ... when != np = E - of_node_put(np);