From: Andy Zhou Date: Thu, 24 Sep 2015 21:13:45 +0000 (-0700) Subject: ovsdb: refactor, add ovsdb_monitor_max_columns() X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=commitdiff_plain;h=6cef8e87b3237d3233a6696844e41f5c614aae17 ovsdb: refactor, add ovsdb_monitor_max_columns() This function will have multiple callers in later patches. Signed-off-by: Andy Zhou Acked-by: Ben Pfaff --- diff --git a/ovsdb/monitor.c b/ovsdb/monitor.c index 7805c6049..daf69cd42 100644 --- a/ovsdb/monitor.c +++ b/ovsdb/monitor.c @@ -545,6 +545,21 @@ ovsdb_monitor_compose_row_update( return row_json; } +static size_t +ovsdb_monitor_max_columns(struct ovsdb_monitor *dbmon) +{ + struct shash_node *node; + size_t max_columns = 0; + + SHASH_FOR_EACH (node, &dbmon->tables) { + struct ovsdb_monitor_table *mt = node->data; + + max_columns = MAX(max_columns, mt->n_columns); + } + + return max_columns; +} + /* Constructs and returns JSON for a object (as described in * RFC 7047) for all the outstanding changes within 'monitor', starting from * 'transaction'. */ @@ -553,17 +568,9 @@ ovsdb_monitor_compose_update(struct ovsdb_monitor *dbmon, bool initial, uint64_t transaction) { struct shash_node *node; - unsigned long int *changed; struct json *json; - size_t max_columns; - - max_columns = 0; - SHASH_FOR_EACH (node, &dbmon->tables) { - struct ovsdb_monitor_table *mt = node->data; - - max_columns = MAX(max_columns, mt->n_columns); - } - changed = xmalloc(bitmap_n_bytes(max_columns)); + size_t max_columns = ovsdb_monitor_max_columns(dbmon); + unsigned long int *changed = xmalloc(bitmap_n_bytes(max_columns)); json = NULL; SHASH_FOR_EACH (node, &dbmon->tables) {