Here's an incremental. --- ovsdb/ovsdb-idlc.in | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in index 79e3d1e..2775d93 100755 --- a/ovsdb/ovsdb-idlc.in +++ b/ovsdb/ovsdb-idlc.in @@ -512,25 +512,19 @@ const struct ovsdb_datum * if not is_string_map(column): continue - print - print "const char *" - print "%(s)s_get_%(c)s_value(const struct %(s)s *row," \ - " const char *key, const char *default_value)" \ - % {'s': structName, 'c': columnName} - print "{" - print " char **keys = row->key_%s;" % columnName - print " char **values = row->value_%s;" % columnName - print " size_t n = row->n_%s;" % columnName - print " size_t i;" - print - print " assert(inited);" - print " for (i = 0; i < n; i++) {" - print " if (!strcmp(keys[i], key)) {" - print " return values[i];" - print " }" - print " }" - print " return default_value;" - print "}" + print """ +const char * %(s)s_get_%(c)s_value(const struct %(s)s *row, const char *key, const char *default_value) +{ + size_t i; + + assert(inited); + for (i = 0; i < row->n_%(c)s; i++) { + if (!strcmp(row->key_%(c)s[i], key)) { + return row->value_%(c)s[i]; + } + } + return default_value; +}""" % {'s': structName, 'c': columnName} # Table columns. print "\nstruct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % ( -- 1.7.9.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev