ovsdb-idl: Fix iteration over rows in IDL tables.
authorBen Pfaff <blp@nicira.com>
Wed, 3 Mar 2010 17:59:47 +0000 (09:59 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 3 Mar 2010 17:59:47 +0000 (09:59 -0800)
commitf2ba3c0a425ba0745cd2640d38dc7e816333d1c6
tree4d0bb208a13291e956af893d4318556394169fbc
parent47a3c536c345925b6d3837643b0e8a24b752fad3
ovsdb-idl: Fix iteration over rows in IDL tables.

The IDL was returning rows that had existed in the database and were
deleted by the current transaction (that is, row->old && !row->new).
This commit fixes the problem.

The condition used by next_real_row() was just blatantly wrong and
illogical.  The correct condition is row->new != NULL.  The old condition
only got one case wrong (the one mentioned above), even though it didn't
make much sense.

This fixes an ovs-vsctl call that assert-failed in a "set" command that
iterated through a table from which a previous ovs-vsctl command (in the
same invocation) had deleted a row.
lib/ovsdb-idl.c