From 6cef8e87b3237d3233a6696844e41f5c614aae17 Mon Sep 17 00:00:00 2001 From: Andy Zhou Date: Thu, 24 Sep 2015 14:13:45 -0700 Subject: [PATCH] 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 --- ovsdb/monitor.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) 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) { -- 2.20.1