From: David Reiss Date: Tue, 29 Apr 2008 00:29:45 +0000 (+0000) Subject: Thrift REST parsing allows null object params X-Git-Tag: 0.2.0~802 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=051fbd4e57ff6818231754143d67fa59b9746a4d;p=common%2Fthrift.git Thrift REST parsing allows null object params Summary: If JSON objects are passed in allow them to be null and don'\''t default construct. Reviewed By: dreiss Test Plan: Regenerate API code and test on object args. Revert: OK DiffCamp Revision: 12407 git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665670 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 f4b4521d..97502ffd 100644 --- a/compiler/cpp/src/generate/t_php_generator.cc +++ b/compiler/cpp/src/generate/t_php_generator.cc @@ -1058,7 +1058,9 @@ void t_php_generator::generate_service_rest(t_service* tservice) { indent() << "$" << (*a_iter)->get_name() << " = array_fill_keys(json_decode($" << (*a_iter)->get_name() << ", true), 1);" << endl; } else if (atype->is_struct() || atype->is_xception()) { f_service_ << - indent() << "$" << (*a_iter)->get_name() << " = new " << php_namespace(atype->get_program()) << atype->get_name() << "(json_decode($" << (*a_iter)->get_name() << ", true));" << endl; + indent() << "if ($" << (*a_iter)->get_name() << " !== null) {" << endl << + indent() << " $" << (*a_iter)->get_name() << " = new " << php_namespace(atype->get_program()) << atype->get_name() << "(json_decode($" << (*a_iter)->get_name() << ", true));" << endl << + indent() << "}" << endl; } } f_service_ <<