On Tue, May 17, 2016 at 05:26:59PM +0300, Liran Schour wrote:
> Columns indexing is different in ovsdb_row then in ovsdb_monitor_row.
> We need mapping between the 2 for condition evaluation.
> 
> signed-off-by: Liran Schour <lir...@il.ibm.com>

In ovsdb_monitor_table_columns_sort(), I don't understand why this loop
starts at 1 instead of 0:
> +    qsort(mt->columns, mt->n_columns, sizeof *mt->columns,
> +          compare_ovsdb_monitor_column);
> +    for (i = 1; i < mt->n_columns; i++) {
> +        /* re-set index map due to sort */
> +        mt->columns_index_map[mt->columns[i].column->index] = i;
> +    }

In ovsdb_monitor_add_table(), please use sizeof *mt->columns_index_map
instead of sizeof(unsigned int), following CodingStyle.md:
+    mt->columns_index_map =
+        xmalloc(sizeof(unsigned int) * shash_count(&table->schema->columns));

Also in ovsdb_monitor_add_table(), I think that the code would be a
little easier to read if shash_count(&table->schema->columns) were put
into a variables, e.g. n_columns.

This new columns_index_map means that it's no longer necessary to work
so hard to find duplicates--rather, we can find a duplicate at the time
we try to add a column: a new column is a duplicate if
columns_index_map[column->index] != -1 at the time we try to add it.  It
would probably be nicer to simply report the error at the time we add
it, instead of adding a sort step and a re-indexing step.

Please add a period at the end of this comment, to make it look like a
complete thought:
+    /* Columns in ovsdb_monitor_row have different indexes then in
+     * ovsdb_row. This field maps between column->index to the index in the
+     * ovsdb_monitor_row. It is used for condition evaluation */

Thanks,

Ben.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to