From eab6ac8b18db9bb6c83b44845aabea177777addf Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Fri, 16 Nov 2007 03:27:22 +0000 Subject: [PATCH] Make sure to lazily initialize $TSPEC for structs even with no members Reviewed By: dweatherford Test Plan: Generate code with no E_ALL for method-less args git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665346 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_php_generator.cc | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/compiler/cpp/src/generate/t_php_generator.cc b/compiler/cpp/src/generate/t_php_generator.cc index c16cfa4b..c0fdd25c 100644 --- a/compiler/cpp/src/generate/t_php_generator.cc +++ b/compiler/cpp/src/generate/t_php_generator.cc @@ -398,28 +398,27 @@ void t_php_generator::generate_php_struct_definition(ofstream& out, out << endl; // Generate constructor from array - if (members.size() > 0) { - out << - indent() << "public function __construct($vals=null) {" << endl; - indent_up(); + string param = (members.size() > 0) ? "$vals=null" : ""; + out << + indent() << "public function __construct(" << param << ") {" << endl; + indent_up(); - generate_php_struct_spec(out, tstruct); + generate_php_struct_spec(out, tstruct); + if (members.size() > 0) { for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) { t_type* t = get_true_type((*m_iter)->get_type()); if ((*m_iter)->get_value() != NULL && (t->is_struct() || t->is_xception())) { indent(out) << "$this->" << (*m_iter)->get_name() << " = " << render_const_value(t, (*m_iter)->get_value()) << ";" << endl; } } - out << indent() << "if (is_array($vals)) {" << endl << indent() << " parent::__construct(self::$_TSPEC, $vals);" << endl << indent() << "}" << endl; - scope_down(out); - - out << endl; } + scope_down(out); + out << endl; out << indent() << "public function getName() {" << endl << -- 2.17.1