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
diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc
index 08c0884..20b991d 100644
--- a/compiler/cpp/src/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/generate/t_cpp_generator.cc
@@ -3878,17 +3878,17 @@
     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 @@
 
   // 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);