From: Ben Pfaff Date: Fri, 30 Apr 2010 21:16:25 +0000 (-0700) Subject: ovsdb-idl: Add "safe" iterator macro to generated code. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58bc1a52cb0b88f8f44b175f13f602e650bc9d06;p=openvswitch ovsdb-idl: Add "safe" iterator macro to generated code. --- 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 *);