[ovs-dev] [monitor2 v2 1/9] ovsdb: refactor, add ovsdb_monitor_max_columns()

Andy Zhou azhou at ovn.org
Tue Nov 24 22:15:58 UTC 2015


From: Andy Zhou <azhou at nicira.com>

This function will have multiple callers in later patches.

Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Ben Pfaff <blp at ovn.org>
---
 ovsdb/monitor.c | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/ovsdb/monitor.c b/ovsdb/monitor.c
index 7805c60..daf69cd 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 <table-updates> 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) {
-- 
1.9.1




More information about the dev mailing list