ovsdb-idlc: Fix memory leak in "optional bool" columns.
authorBen Pfaff <blp@nicira.com>
Thu, 22 Mar 2012 20:24:23 +0000 (13:24 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 23 Mar 2012 17:15:05 +0000 (10:15 -0700)
Commit 1bf2c9096858 (idl: Generalize special case boolean exception.)
changed the IDL to do dynamic allocation with (x)malloc() for optional
booleans, but it didn't add the corresponding calls to free().  This
commit fixes the problem.

Bug #10357.
Reported-by: Paul Ingram <paul@nicira.com>
Reported-by: Krishna Miriyala <krishna@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ovsdb/ovsdb-idlc.in

index 0ee5c6b1f617544479d392dd7d863d74cac3df6e..dfde735aac4e8b9f2c0f0efbfff3b3bb64931612 100755 (executable)
@@ -336,15 +336,7 @@ static void
         # Unparse functions.
         for columnName, column in sorted(table.columns.iteritems()):
             type = column.type
-            if (type.key.type == ovs.db.types.BooleanType and not type.value
-                and type.n_min == 0 and type.n_max == 1):
-                print '''
-static void
-%(s)s_unparse_%(c)s(struct ovsdb_idl_row *row OVS_UNUSED)
-{
-    /* Nothing to do. */
-}''' % {'s': structName, 'c': columnName}
-            elif (type.n_min != 1 or type.n_max != 1) and not type.is_optional_pointer():
+            if (type.n_min != 1 or type.n_max != 1) and not type.is_optional_pointer():
                 print '''
 static void
 %(s)s_unparse_%(c)s(struct ovsdb_idl_row *row_)