Oh, sorry, I must have done something stupid, adding the "const" after
the ** doesn't make much sense.

Would you mind posting the whole revised patch again with the
incremental folded in?  I want to figure out where I went wrong.

Thanks,

Ben.

On Wed, Mar 21, 2012 at 05:23:15PM -0700, Ethan Jackson wrote:
> I had to jump through an awkward hoop to get through the cast as
> result_key needs to be char **const for the subtraction to work.  If
> it's char **const, I need to updated it at it's definition.  What do
> you think of this incremental?
> 
> Ethan
> 
> ---
>  ovsdb/ovsdb-idlc.in |   20 +++++++++-----------
>  1 file changed, 9 insertions(+), 11 deletions(-)
> 
> diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in
> index afac576..8df11df 100755
> --- a/ovsdb/ovsdb-idlc.in
> +++ b/ovsdb/ovsdb-idlc.in
> @@ -26,10 +26,10 @@ def constify(cType, const):
>          return cType
>  
>  def is_string_map(column):
> -    return column.type.key \
> -            and column.type.value \
> -            and column.type.key.type == ovs.db.types.StringType \
> -            and column.type.value.type == ovs.db.types.StringType
> +    return (column.type.key
> +            and column.type.value
> +            and column.type.key.type == ovs.db.types.StringType
> +            and column.type.value.type == ovs.db.types.StringType)
>  
>  def cMembers(prefix, columnName, column, const):
>      type = column.type
> @@ -531,15 +531,13 @@ const struct ovsdb_datum *
>              print """
>  const char * %(s)s_get_%(c)s_value(const struct %(s)s *row, const char 
> *search_key, const char *default_value)
>  {
> -    const char **keys = (const char **) row->key_%(c)s;
> -    const char **values = (const char **) row->value_%(c)s;
> +    char **const keys = row->key_%(c)s;
> +    char **const values = row->value_%(c)s;
>      size_t n_keys = row->n_%(c)s;
> -    const char **result_key;
> -
> +    char **const result_key = bsearch(&search_key, keys, n_keys, sizeof 
> *keys,
> +                                      bsearch_strcmp);
>      assert(inited);
> -    result_key = bsearch(&search_key, keys, n_keys, sizeof *keys,
> -                         bsearch_strcmp);
> -    return result_key ? *(values + (result_key - keys)) : default_value;
> +    return result_key ? values[result_key - keys] : default_value;
>  }""" % {'s': structName, 'c': columnName}
>  
>          # Table columns.
> -- 
> 1.7.9.4
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to