X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ovsdb%2Frow.c;h=9b9f96a2a2fe3828c2f11bff96bd143d69ee92f0;hb=28c5588e8e1a8d091c5d2275232c35f2968a97fa;hp=dece90fd9d91665e56b0f3245e3091b25116ef0f;hpb=25d4983554f6cf8ce5e169f7c5bb5a08c981d27e;p=sliver-openvswitch.git diff --git a/ovsdb/row.c b/ovsdb/row.c index dece90fd9..9b9f96a2a 100644 --- a/ovsdb/row.c +++ b/ovsdb/row.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2009, 2010, 2011 Nicira Networks +/* Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,6 @@ #include "row.h" -#include #include #include "dynamic-string.h" @@ -31,10 +30,12 @@ static struct ovsdb_row * allocate_row(const struct ovsdb_table *table) { size_t n_fields = shash_count(&table->schema->columns); + size_t n_indexes = table->schema->n_indexes; size_t row_size = (offsetof(struct ovsdb_row, fields) - + sizeof(struct ovsdb_datum) * n_fields); + + sizeof(struct ovsdb_datum) * n_fields + + sizeof(struct hmap_node) * n_indexes); struct ovsdb_row *row = xmalloc(row_size); - row->table = (struct ovsdb_table *) table; + row->table = CONST_CAST(struct ovsdb_table *, table); row->txn_row = NULL; list_init(&row->src_refs); list_init(&row->dst_refs); @@ -345,7 +346,7 @@ ovsdb_row_hash_destroy(struct ovsdb_row_hash *rh, bool destroy_rows) HMAP_FOR_EACH_SAFE (node, next, hmap_node, &rh->rows) { hmap_remove(&rh->rows, &node->hmap_node); if (destroy_rows) { - ovsdb_row_destroy((struct ovsdb_row *) node->row); + ovsdb_row_destroy(CONST_CAST(struct ovsdb_row *, node->row)); } free(node); } @@ -374,7 +375,7 @@ ovsdb_row_hash_contains_all(const struct ovsdb_row_hash *a, { struct ovsdb_row_hash_node *node; - assert(ovsdb_column_set_equals(&a->columns, &b->columns)); + ovs_assert(ovsdb_column_set_equals(&a->columns, &b->columns)); HMAP_FOR_EACH (node, hmap_node, &b->rows) { if (!ovsdb_row_hash_contains__(a, node->row, node->hmap_node.hash)) { return false;