From 97b97fd7156d2176c4962a8c69facde1a6caec4b Mon Sep 17 00:00:00 2001 From: "Adam C. Emerson" Date: Wed, 9 Nov 2016 16:36:23 -0500 Subject: [PATCH] kvs: ObjectWriteOPerations can't be in a VLA Variable length arrays can only contain Plain Old data types. ObjectOperation has a virtual destructor and is thus not Plain Old Data. We could also get rid of ObjectOperation's virtual destructor, since it has no other virtual functions. Signed-off-by: Adam C. Emerson --- src/key_value_store/kv_flat_btree_async.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/key_value_store/kv_flat_btree_async.cc b/src/key_value_store/kv_flat_btree_async.cc index df54384b525..c0acd4dc924 100644 --- a/src/key_value_store/kv_flat_btree_async.cc +++ b/src/key_value_store/kv_flat_btree_async.cc @@ -1120,7 +1120,7 @@ int KvFlatBtreeAsync::cleanup(const index_data &idata, const int &error) { //all changes were created except for updating the index and possibly //deleting the objects. roll forward. vector, librados::ObjectWriteOperation*> > ops; - librados::ObjectWriteOperation owos[idata.to_delete.size() + 1]; + vector owos(idata.to_delete.size() + 1); for (int i = 0; i <= (int)idata.to_delete.size(); ++i) { ops.push_back(make_pair(pair(0, ""), &owos[i])); } @@ -1883,7 +1883,7 @@ int KvFlatBtreeAsync::set_many(const map &in_map) { .omap.rbegin()->first); to_create.push_back(object_data( - to_string(client_name, client_index++))); + to_string(client_name, client_index++))); to_create[to_create.size() - 1].min_kdata = to_create[to_create.size() - 2].max_kdata; } @@ -1893,8 +1893,8 @@ int KvFlatBtreeAsync::set_many(const map &in_map) { to_create[to_create.size() - 1].max_kdata = to_delete[to_delete.size() - 1].max_kdata; - librados::ObjectWriteOperation owos[2 + 2 * to_delete.size() - + to_create.size()]; + vector owos(2 + 2 * to_delete.size() + + to_create.size()); vector, librados::ObjectWriteOperation*> > ops; -- 2.39.5