[ovs-dev] [PATCH 1/3] ovsdb-idl: Add "safe" iterator macro to generated code.
Justin Pettit
jpettit at nicira.com
Fri Apr 30 22:34:37 UTC 2010
From: Ben Pfaff <blp at nicira.com>
---
ovsdb/ovsdb-idlc.in | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
index 6a0303d..c89048e 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 *);
--
1.7.0.3
More information about the dev
mailing list