Author: bryanduxbury
Date: Thu Jun 14 14:36:18 2012
New Revision: 1350268
URL: http://svn.apache.org/viewvc?rev=1350268&view=rev
Log:
THRIFT-1622. cpp: Incorrect size returned on read
This patch adds a missing 'xfer +=' in a few spots.
Patch: NN
Modified:
thrift/trunk/compiler/cpp/src/generate/t_cpp_generator.cc
Modified: thrift/trunk/compiler/cpp/src/generate/t_cpp_generator.cc
URL:
http://svn.apache.org/viewvc/thrift/trunk/compiler/cpp/src/generate/t_cpp_generator.cc?rev=1350268&r1=1350267&r2=1350268&view=diff
==============================================================================
--- thrift/trunk/compiler/cpp/src/generate/t_cpp_generator.cc (original)
+++ thrift/trunk/compiler/cpp/src/generate/t_cpp_generator.cc Thu Jun 14
14:36:18 2012
@@ -3878,17 +3878,17 @@ void t_cpp_generator::generate_deseriali
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_deseriali
// 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);