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 5b575b4..8b05f70 100644
--- a/compiler/cpp/src/generate/t_php_generator.cc
+++ b/compiler/cpp/src/generate/t_php_generator.cc
@@ -809,6 +809,7 @@
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 1707d03..c53fe42 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_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 @@
// 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;
}