On 02/19/2015 10:34 AM, Russell Bryant wrote: > On 02/19/2015 03:12 AM, Ben Pfaff wrote: >> The lower layers count errors but until now nothing actually reported them. >> >> Found by inspection. >> >> Signed-off-by: Ben Pfaff <b...@nicira.com> >> --- >> vswitchd/bridge.c | 8 +++++--- >> 1 file changed, 5 insertions(+), 3 deletions(-) >> >> diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c >> index 297c0dd..a143be1 100644 >> --- a/vswitchd/bridge.c >> +++ b/vswitchd/bridge.c >> @@ -1,4 +1,4 @@ >> -/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc. >> +/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc. >> * >> * Licensed under the Apache License, Version 2.0 (the "License"); >> * you may not use this file except in compliance with the License. >> @@ -2489,8 +2489,8 @@ port_refresh_rstp_status(struct port *port) >> struct ofproto *ofproto = port->bridge->ofproto; >> struct iface *iface; >> struct ofproto_port_rstp_status status; >> - char *keys[3]; >> - int64_t int_values[3]; >> + char *keys[4]; > > Based on the code below, it looks like it would be nice to make this > "const char *keys[4];". > > If that gets changed, it's passed to automatically generated code where > the parameter is not const. It's the 2nd parameter here: > > ovsrec_port_set_statistics(const struct ovsrec_port *row, char > **key_statistics, const int64_t *value_statistics, size_t n_statistics) > > The second parameter is explicitly excluded from being made const, but > it's not clear why. Is there some C detail I'm forgetting, or does this > seem safe? > > The following change results in the 2nd parameter above being made const > and seems to still build without any warnings:
Nevermind ... of course there's a bunch of warnings. I just didn't set -Werror. It looks like the below change wouldn't be desired, but maybe adding const to just "char **" would be OK. Of course, it's not important anyway ... > diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in > index 6c8aa43..2d32850 100755 > --- a/ovsdb/ovsdb-idlc.in > +++ b/ovsdb/ovsdb-idlc.in > @@ -21,7 +21,7 @@ def annotateSchema(schemaFile, annotationFile): > sys.stdout.write('\n') > > def constify(cType, const): > - if (const and cType.endswith('*') and not cType.endswith('**')): > + if const and cType.endswith('*'): > return 'const %s' % cType > else: > return cType > > >> + int64_t int_values[4]; >> struct smap smap; >> >> if (port_is_synthetic(port)) { >> @@ -2539,6 +2539,8 @@ port_refresh_rstp_status(struct port *port) >> int_values[1] = status.rx_count; >> keys[2] = "rstp_uptime"; >> int_values[2] = status.uptime; >> + keys[3] = "rstp_error_count"; >> + int_values[3] = status.error_count; >> ovsrec_port_set_rstp_statistics(port->cfg, keys, int_values, >> ARRAY_SIZE(int_values)); >> } >> > > -- Russell Bryant _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev