Thrift, Make sure gen'd code initializes empty containers in php / python
authorMark Slee <mcslee@apache.org>
Mon, 4 Sep 2006 00:20:24 +0000 (00:20 +0000)
committerMark Slee <mcslee@apache.org>
Mon, 4 Sep 2006 00:20:24 +0000 (00:20 +0000)
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664781 13f79535-47bb-0310-9956-ffa450edef68

compiler/cpp/src/generate/t_php_generator.cc
compiler/cpp/src/generate/t_py_generator.cc

index 5b575b4..8b05f70 100644 (file)
@@ -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
index 1707d03..c53fe42 100644 (file)
@@ -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;
   }