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 <[email protected]>
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
[email protected]
http://openvswitch.org/mailman/listinfo/dev