streaming: Fix prepare_message and stream_request deserialization

vector(size_type count) constructs the container with count
default-inserted instances of T. So, current code will end up with 2*num
elements which is wrong.
This commit is contained in:
Asias He
2015-07-22 11:16:20 +08:00
parent f83d0bf7c4
commit d934b2c761
2 changed files with 4 additions and 4 deletions

View File

@@ -41,14 +41,14 @@ void prepare_message::serialize(bytes::iterator& out) const {
prepare_message prepare_message::deserialize(bytes_view& v) {
auto num = read_simple<int32_t>(v);
std::vector<stream_request> requests_(num);
std::vector<stream_request> requests_;
for (int32_t i = 0; i < num; i++) {
auto r = stream_request::deserialize(v);
requests_.push_back(std::move(r));
}
num = read_simple<int32_t>(v);
std::vector<stream_summary> summaries_(num);
std::vector<stream_summary> summaries_;
for (int32_t i = 0; i < num; i++) {
auto s = stream_summary::deserialize(v);
summaries_.push_back(std::move(s));

View File

@@ -43,13 +43,13 @@ stream_request stream_request::deserialize(bytes_view& v) {
auto keyspace_ = read_simple_short_string(v);
auto num = read_simple<int32_t>(v);
std::vector<query::range<token>> ranges_(num);
std::vector<query::range<token>> ranges_;
for (int32_t i = 0; i < num; i++) {
// FIXME: query::range<token>
}
num = read_simple<int32_t>(v);
std::vector<sstring> column_families_(num);
std::vector<sstring> column_families_;
for (int32_t i = 0; i < num; i++) {
auto s = read_simple_short_string(v);
column_families_.push_back(std::move(s));