From 58bc1a52cb0b88f8f44b175f13f602e650bc9d06 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 30 Apr 2010 14:16:25 -0700 Subject: [PATCH] ovsdb-idl: Add "safe" iterator macro to generated code. --- ovsdb/ovsdb-idlc.in | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in index 6a0303db..c89048ee 100755 --- a/ovsdb/ovsdb-idlc.in +++ b/ovsdb/ovsdb-idlc.in @@ -158,7 +158,14 @@ def printCIDLHeader(schemaFile): print ''' const struct %(s)s *%(s)s_first(const struct ovsdb_idl *); const struct %(s)s *%(s)s_next(const struct %(s)s *); -#define %(S)s_FOR_EACH(ROW, IDL) for ((ROW) = %(s)s_first(IDL); (ROW); (ROW) = %(s)s_next(ROW)) +#define %(S)s_FOR_EACH(ROW, IDL) \\ + for ((ROW) = %(s)s_first(IDL); \\ + (ROW); \\ + (ROW) = %(s)s_next(ROW)) +#define %(S)s_FOR_EACH_SAFE(ROW, NEXT, IDL) \\ + for ((ROW) = %(s)s_first(IDL); \\ + (ROW) ? ((NEXT) = %(s)s_next(ROW), 1) : 0; \\ + (ROW) = (NEXT)) void %(s)s_delete(const struct %(s)s *); struct %(s)s *%(s)s_insert(struct ovsdb_idl_txn *); -- 2.30.2