From 6edb27a5af3e60c7363394a7d277dd63e32c4571 Mon Sep 17 00:00:00 2001 From: Bryan Duxbury Date: Thu, 14 Jun 2012 14:36:18 +0000 Subject: [PATCH] THRIFT-1622. cpp: Incorrect size returned on read This patch adds a missing 'xfer +=' in a few spots. Patch: NN git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1350268 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_cpp_generator.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc index 08c08844..20b991de 100644 --- a/compiler/cpp/src/generate/t_cpp_generator.cc +++ b/compiler/cpp/src/generate/t_cpp_generator.cc @@ -3878,17 +3878,17 @@ void t_cpp_generator::generate_deserialize_container(ofstream& out, out << indent() << "::apache::thrift::protocol::TType " << ktype << ";" << endl << indent() << "::apache::thrift::protocol::TType " << vtype << ";" << endl << - indent() << "iprot->readMapBegin(" << + indent() << "xfer += iprot->readMapBegin(" << ktype << ", " << vtype << ", " << size << ");" << endl; } else if (ttype->is_set()) { out << indent() << "::apache::thrift::protocol::TType " << etype << ";" << endl << - indent() << "iprot->readSetBegin(" << + indent() << "xfer += iprot->readSetBegin(" << etype << ", " << size << ");" << endl; } else if (ttype->is_list()) { out << indent() << "::apache::thrift::protocol::TType " << etype << ";" << endl << - indent() << "iprot->readListBegin(" << + indent() << "xfer += iprot->readListBegin(" << etype << ", " << size << ");" << endl; if (!use_push) { indent(out) << prefix << ".resize(" << size << ");" << endl; @@ -3916,11 +3916,11 @@ void t_cpp_generator::generate_deserialize_container(ofstream& out, // Read container end if (ttype->is_map()) { - indent(out) << "iprot->readMapEnd();" << endl; + indent(out) << "xfer += iprot->readMapEnd();" << endl; } else if (ttype->is_set()) { - indent(out) << "iprot->readSetEnd();" << endl; + indent(out) << "xfer += iprot->readSetEnd();" << endl; } else if (ttype->is_list()) { - indent(out) << "iprot->readListEnd();" << endl; + indent(out) << "xfer += iprot->readListEnd();" << endl; } scope_down(out); -- 2.17.1