[ovs-dev] [PATCH 2/3] ovsdb-idl: Avoid new expression.
Gao Zhenyu
sysugaozhenyu at gmail.com
Tue Aug 8 07:46:53 UTC 2017
Thanks for working on it!
I think new_ is not a good name. Could you please try to revise it?
like: old --> old_datum
new -->new_datum
BTW, you also need to update 'new' in the description of struct
ovsdb_idl_row which in the top of lib/ovsdb-idl-provider.h
Thanks
Zhenyu Gao
2017-08-08 2:01 GMT+08:00 Joe Stringer <joe at ovn.org>:
> In C++, 'new' is a keyword. If this is used as the name for a field,
> then C++ compilers can get confused about the context and fail to
> compile references to such fields. Rename the field to 'new_' to avoid
> this issue.
>
> Signed-off-by: Joe Stringer <joe at ovn.org>
> ---
> lib/ovsdb-data.h | 4 +--
> lib/ovsdb-idl-provider.h | 2 +-
> lib/ovsdb-idl.c | 76 ++++++++++++++++++++++++------
> ------------------
> 3 files changed, 41 insertions(+), 41 deletions(-)
>
> diff --git a/lib/ovsdb-data.h b/lib/ovsdb-data.h
> index 1bf90d59c30f..521bc553897a 100644
> --- a/lib/ovsdb-data.h
> +++ b/lib/ovsdb-data.h
> @@ -222,10 +222,10 @@ void ovsdb_datum_subtract(struct ovsdb_datum *a,
> /* Generate and apply diffs */
> void ovsdb_datum_diff(struct ovsdb_datum *diff,
> const struct ovsdb_datum *old,
> - const struct ovsdb_datum *new,
> + const struct ovsdb_datum *new_,
> const struct ovsdb_type *type);
>
> -struct ovsdb_error *ovsdb_datum_apply_diff(struct ovsdb_datum *new,
> +struct ovsdb_error *ovsdb_datum_apply_diff(struct ovsdb_datum *new_,
> const struct ovsdb_datum *old,
> const struct ovsdb_datum *diff,
> const struct ovsdb_type *type)
> diff --git a/lib/ovsdb-idl-provider.h b/lib/ovsdb-idl-provider.h
> index 09cff143f07f..3578f89cb07c 100644
> --- a/lib/ovsdb-idl-provider.h
> +++ b/lib/ovsdb-idl-provider.h
> @@ -70,7 +70,7 @@ struct ovsdb_idl_row {
> struct ovsdb_datum *old; /* Committed data (null if orphaned). */
>
> /* Transactional data. */
> - struct ovsdb_datum *new; /* Modified data (null to delete row). */
> + struct ovsdb_datum *new_; /* Modified data (null to delete row). */
> unsigned long int *prereqs; /* Bitmap of columns to verify in "old".
> */
> unsigned long int *written; /* Bitmap of columns from "new" to write.
> */
> struct hmap_node txn_node; /* Node in ovsdb_idl_txn's list. */
> diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c
> index d0ecad7cf097..41f98a7df74c 100644
> --- a/lib/ovsdb-idl.c
> +++ b/lib/ovsdb-idl.c
> @@ -761,11 +761,11 @@ ovsdb_idl_check_consistency(const struct ovsdb_idl
> *idl)
> const struct ovsdb_idl_row *row;
> HMAP_FOR_EACH (row, hmap_node, &table->rows) {
> size_t n_dsts = 0;
> - if (row->new) {
> + if (row->new_) {
> size_t n_columns = shash_count(&row->table->columns);
> for (size_t j = 0; j < n_columns; j++) {
> const struct ovsdb_type *type =
> &class->columns[j].type;
> - const struct ovsdb_datum *datum = &row->new[j];
> + const struct ovsdb_datum *datum = &row->new_[j];
> add_row_references(&type->key,
> datum->keys, datum->n, &row->uuid,
> &dsts, &n_dsts, &allocated_dsts);
> @@ -1978,7 +1978,7 @@ ovsdb_idl_row_apply_diff(struct ovsdb_idl_row *row,
> static bool
> ovsdb_idl_row_is_orphan(const struct ovsdb_idl_row *row)
> {
> - return !row->old && !row->new;
> + return !row->old && !row->new_;
> }
>
> /* Returns true if 'row' is conceptually part of the database as modified
> by
> @@ -2000,7 +2000,7 @@ ovsdb_idl_row_is_orphan(const struct ovsdb_idl_row
> *row)
> static bool
> ovsdb_idl_row_exists(const struct ovsdb_idl_row *row)
> {
> - return row->new != NULL;
> + return row->new_ != NULL;
> }
>
> static void
> @@ -2030,7 +2030,7 @@ ovsdb_idl_row_unparse(struct ovsdb_idl_row *row)
> static void
> ovsdb_idl_row_clear_old(struct ovsdb_idl_row *row)
> {
> - ovs_assert(row->old == row->new);
> + ovs_assert(row->old == row->new_);
> if (!ovsdb_idl_row_is_orphan(row)) {
> const struct ovsdb_idl_table_class *class = row->table->class_;
> size_t i;
> @@ -2039,28 +2039,28 @@ ovsdb_idl_row_clear_old(struct ovsdb_idl_row *row)
> ovsdb_datum_destroy(&row->old[i], &class->columns[i].type);
> }
> free(row->old);
> - row->old = row->new = NULL;
> + row->old = row->new_ = NULL;
> }
> }
>
> static void
> ovsdb_idl_row_clear_new(struct ovsdb_idl_row *row)
> {
> - if (row->old != row->new) {
> - if (row->new) {
> + if (row->old != row->new_) {
> + if (row->new_) {
> const struct ovsdb_idl_table_class *class =
> row->table->class_;
> size_t i;
>
> if (row->written) {
> BITMAP_FOR_EACH_1 (i, class->n_columns, row->written) {
> - ovsdb_datum_destroy(&row->new[i],
> &class->columns[i].type);
> + ovsdb_datum_destroy(&row->new_[i],
> &class->columns[i].type);
> }
> }
> - free(row->new);
> + free(row->new_);
> free(row->written);
> row->written = NULL;
> }
> - row->new = row->old;
> + row->new_ = row->old;
> }
> }
>
> @@ -2226,8 +2226,8 @@ ovsdb_idl_insert_row(struct ovsdb_idl_row *row,
> const struct json *row_json)
> const struct ovsdb_idl_table_class *class = row->table->class_;
> size_t i;
>
> - ovs_assert(!row->old && !row->new);
> - row->old = row->new = xmalloc(class->n_columns * sizeof *row->old);
> + ovs_assert(!row->old && !row->new_);
> + row->old = row->new_ = xmalloc(class->n_columns * sizeof *row->old);
> for (i = 0; i < class->n_columns; i++) {
> ovsdb_datum_init_default(&row->old[i], &class->columns[i].type);
> }
> @@ -2330,7 +2330,7 @@ ovsdb_idl_get_row_arc(struct ovsdb_idl_row *src,
> *
> * Just return the destination row, if there is one and it has
> not been
> * deleted. */
> - if (dst && (hmap_node_is_null(&dst->txn_node) || dst->new)) {
> + if (dst && (hmap_node_is_null(&dst->txn_node) || dst->new_)) {
> return dst;
> }
> return NULL;
> @@ -2427,11 +2427,11 @@ ovsdb_idl_read(const struct ovsdb_idl_row *row,
> class = row->table->class_;
> column_idx = column - class->columns;
>
> - ovs_assert(row->new != NULL);
> + ovs_assert(row->new_ != NULL);
> ovs_assert(column_idx < class->n_columns);
>
> if (row->written && bitmap_is_set(row->written, column_idx)) {
> - return &row->new[column_idx];
> + return &row->new_[column_idx];
> } else if (row->old) {
> return &row->old[column_idx];
> } else {
> @@ -2470,7 +2470,7 @@ bool
> ovsdb_idl_is_mutable(const struct ovsdb_idl_row *row,
> const struct ovsdb_idl_column *column)
> {
> - return column->mutable || (row->new && !row->old);
> + return column->mutable || (row->new_ && !row->old);
> }
>
> /* Returns false if 'row' was obtained from the IDL, true if it was
> initialized
> @@ -2699,7 +2699,7 @@ substitute_uuids(struct json *json, const struct
> ovsdb_idl_txn *txn)
> const struct ovsdb_idl_row *row;
>
> row = ovsdb_idl_txn_get_row(txn, &uuid);
> - if (row && !row->old && row->new) {
> + if (row && !row->old && row->new_) {
> json_destroy(json);
>
> return json_array_create_2(
> @@ -2788,8 +2788,8 @@ ovsdb_idl_txn_extract_mutations(struct
> ovsdb_idl_row *row,
> value_type = column->type.value.type;
>
> /* Get the value to be changed */
> - if (row->new && row->written && bitmap_is_set(row->written,idx))
> {
> - old_datum = &row->new[idx];
> + if (row->new_ && row->written && bitmap_is_set(row->written,idx))
> {
> + old_datum = &row->new_[idx];
> } else if (row->old != NULL) {
> old_datum = &row->old[idx];
> } else {
> @@ -2896,8 +2896,8 @@ ovsdb_idl_txn_extract_mutations(struct
> ovsdb_idl_row *row,
> key_type = column->type.key.type;
>
> /* Get the value to be changed */
> - if (row->new && row->written && bitmap_is_set(row->written,idx))
> {
> - old_datum = &row->new[idx];
> + if (row->new_ && row->written && bitmap_is_set(row->written,idx))
> {
> + old_datum = &row->new_[idx];
> } else if (row->old != NULL) {
> old_datum = &row->old[idx];
> } else {
> @@ -3072,7 +3072,7 @@ ovsdb_idl_txn_commit(struct ovsdb_idl_txn *txn)
> HMAP_FOR_EACH (row, txn_node, &txn->txn_rows) {
> const struct ovsdb_idl_table_class *class = row->table->class_;
>
> - if (!row->new) {
> + if (!row->new_) {
> if (class->is_root) {
> struct json *op = json_object_create();
> json_object_put_string(op, "op", "delete");
> @@ -3083,7 +3083,7 @@ ovsdb_idl_txn_commit(struct ovsdb_idl_txn *txn)
> } else {
> /* Let ovsdb-server decide whether to really delete it. */
> }
> - } else if (row->old != row->new) {
> + } else if (row->old != row->new_) {
> struct json *row_json;
> struct json *op;
> size_t idx;
> @@ -3118,11 +3118,11 @@ ovsdb_idl_txn_commit(struct ovsdb_idl_txn *txn)
>
> &class->columns[idx];
>
> if (row->old
> - || !ovsdb_datum_is_default(&row->new[idx],
> + || !ovsdb_datum_is_default(&row->new_[idx],
> &column->type)) {
> json_object_put(row_json, column->name,
> substitute_uuids(
> - ovsdb_datum_to_json(&row->new[
> idx],
> + ovsdb_datum_to_json(&row->new_
> [idx],
>
> &column->type),
> txn));
>
> @@ -3131,7 +3131,7 @@ ovsdb_idl_txn_commit(struct ovsdb_idl_txn *txn)
> * or transactions would become nonatomic (see
> the big
> * comment inside ovsdb_idl_txn_write()). */
> if (!any_updates && row->old &&
> - !ovsdb_datum_equals(&row->old[idx],
> &row->new[idx],
> + !ovsdb_datum_equals(&row->old[idx],
> &row->new_[idx],
> &column->type)) {
> any_updates = true;
> }
> @@ -3370,7 +3370,7 @@ ovsdb_idl_txn_write__(const struct ovsdb_idl_row
> *row_,
> column_idx = column - class->columns;
> write_only = row->table->modes[column_idx] == OVSDB_IDL_MONITOR;
>
> - ovs_assert(row->new != NULL);
> + ovs_assert(row->new_ != NULL);
> ovs_assert(column_idx < class->n_columns);
> ovs_assert(row->old == NULL ||
> row->table->modes[column_idx] & OVSDB_IDL_MONITOR);
> @@ -3401,24 +3401,24 @@ ovsdb_idl_txn_write__(const struct ovsdb_idl_row
> *row_,
> hmap_insert(&row->table->idl->txn->txn_rows, &row->txn_node,
> uuid_hash(&row->uuid));
> }
> - if (row->old == row->new) {
> - row->new = xmalloc(class->n_columns * sizeof *row->new);
> + if (row->old == row->new_) {
> + row->new_ = xmalloc(class->n_columns * sizeof *row->new_);
> }
> if (!row->written) {
> row->written = bitmap_allocate(class->n_columns);
> }
> if (bitmap_is_set(row->written, column_idx)) {
> - ovsdb_datum_destroy(&row->new[column_idx], &column->type);
> + ovsdb_datum_destroy(&row->new_[column_idx], &column->type);
> } else {
> bitmap_set1(row->written, column_idx);
> }
> if (owns_datum) {
> - row->new[column_idx] = *datum;
> + row->new_[column_idx] = *datum;
> } else {
> - ovsdb_datum_clone(&row->new[column_idx], datum, &column->type);
> + ovsdb_datum_clone(&row->new_[column_idx], datum, &column->type);
> }
> (column->unparse)(row);
> - (column->parse)(row, &row->new[column_idx]);
> + (column->parse)(row, &row->new_[column_idx]);
> return;
>
> discard_datum:
> @@ -3511,7 +3511,7 @@ ovsdb_idl_txn_verify(const struct ovsdb_idl_row
> *row_,
> class = row->table->class_;
> column_idx = column - class->columns;
>
> - ovs_assert(row->new != NULL);
> + ovs_assert(row->new_ != NULL);
> ovs_assert(row->old == NULL ||
> row->table->modes[column_idx] & OVSDB_IDL_MONITOR);
> if (!row->old
> @@ -3545,7 +3545,7 @@ ovsdb_idl_txn_delete(const struct ovsdb_idl_row
> *row_)
> return;
> }
>
> - ovs_assert(row->new != NULL);
> + ovs_assert(row->new_ != NULL);
> if (!row->old) {
> ovsdb_idl_row_unparse(row);
> ovsdb_idl_row_clear_new(row);
> @@ -3560,7 +3560,7 @@ ovsdb_idl_txn_delete(const struct ovsdb_idl_row
> *row_)
> uuid_hash(&row->uuid));
> }
> ovsdb_idl_row_clear_new(row);
> - row->new = NULL;
> + row->new_ = NULL;
> }
>
> /* Inserts and returns a new row in the table with the specified 'class'
> in the
> @@ -3590,7 +3590,7 @@ ovsdb_idl_txn_insert(struct ovsdb_idl_txn *txn,
> }
>
> row->table = ovsdb_idl_table_from_class(txn->idl, class);
> - row->new = xmalloc(class->n_columns * sizeof *row->new);
> + row->new_ = xmalloc(class->n_columns * sizeof *row->new_);
> hmap_insert(&row->table->rows, &row->hmap_node,
> uuid_hash(&row->uuid));
> hmap_insert(&txn->txn_rows, &row->txn_node, uuid_hash(&row->uuid));
> return row;
> --
> 2.13.3
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
More information about the dev
mailing list