From: Mark Slee Date: Mon, 4 Sep 2006 00:20:24 +0000 (+0000) Subject: Thrift, Make sure gen'd code initializes empty containers in php / python X-Git-Tag: 0.2.0~1691 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=aeac1926f24afbc066abb45917d8a14e879fb9f5;p=common%2Fthrift.git Thrift, Make sure gen'd code initializes empty containers in php / python git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664781 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/compiler/cpp/src/generate/t_php_generator.cc b/compiler/cpp/src/generate/t_php_generator.cc index 5b575b46..8b05f706 100644 --- a/compiler/cpp/src/generate/t_php_generator.cc +++ b/compiler/cpp/src/generate/t_php_generator.cc @@ -809,6 +809,7 @@ void t_php_generator::generate_deserialize_container(ofstream &out, t_field fetype(g_program->get_byte_type(), etype); indent(out) << + prefix << " = array();" << endl << "$" << size << " = 0;" << endl; // Declare variables, read header diff --git a/compiler/cpp/src/generate/t_py_generator.cc b/compiler/cpp/src/generate/t_py_generator.cc index 1707d034..c53fe420 100644 --- a/compiler/cpp/src/generate/t_py_generator.cc +++ b/compiler/cpp/src/generate/t_py_generator.cc @@ -640,8 +640,8 @@ void t_py_generator::generate_deserialize_struct(ofstream &out, } void t_py_generator::generate_deserialize_container(ofstream &out, - t_type* ttype, - string prefix) { + t_type* ttype, + string prefix) { string size = tmp("_size"); string ktype = tmp("_ktype"); string vtype = tmp("_vtype"); @@ -655,12 +655,15 @@ void t_py_generator::generate_deserialize_container(ofstream &out, // Declare variables, read header if (ttype->is_map()) { out << + indent() << prefix << " = {}" << endl << indent() << "(" << ktype << ", " << vtype << ", " << size << " ) = iprot.readMapBegin(itrans) " << endl; } else if (ttype->is_set()) { out << + indent() << prefix << " = []" << endl << indent() << "(" << etype << ", " << size << ") = iprot.readSetBegin(itrans)" << endl; } else if (ttype->is_list()) { out << + indent() << prefix << " = []" << endl << indent() << "(" << etype << ", " << size << ") = iprot.readListBegin(itrans)" << endl; }