dmitry Wed Nov 8 10:05:20 2006 UTC Added files: (Branch: PHP_5_2) /php-src/ext/soap/tests/bugs bug38536.phpt bug38536.wsdl
Modified files: /php-src NEWS /php-src/ext/soap php_encoding.c Log: Fixed bug #38536 (SOAP returns an array of values instead of an object) http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.337&r2=1.2027.2.547.2.338&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.337 php-src/NEWS:1.2027.2.547.2.338 --- php-src/NEWS:1.2027.2.547.2.337 Tue Nov 7 20:24:04 2006 +++ php-src/NEWS Wed Nov 8 10:05:19 2006 @@ -40,6 +40,8 @@ read valid db). (Marcus) - Fixed bug #38680 (Added missing handling of basic types in json_decode). (Ilia) +- Fixed bug #38536 (SOAP returns an array of values instead of an object). + (Dmitry) - Fixed bug #33282 (Re-assignment by reference does not clear the is_ref flag) (Ilia,Dmitry, Matt Wilmas) http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.14&r2=1.103.2.21.2.15&diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.14 php-src/ext/soap/php_encoding.c:1.103.2.21.2.15 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.14 Mon Nov 6 13:22:49 2006 +++ php-src/ext/soap/php_encoding.c Wed Nov 8 10:05:19 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.14 2006/11/06 13:22:49 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.15 2006/11/08 10:05:19 dmitry Exp $ */ #include <time.h> @@ -1137,13 +1137,14 @@ if (node) { zval *val; + xmlNodePtr r_node; - node = check_and_resolve_href(node); - if (node && node->children && node->children->content) { - if (model->u.element->fixed && strcmp(model->u.element->fixed, (char*)node->children->content) != 0) { - soap_error3(E_ERROR, "Encoding: Element '%s' has fixed value '%s' (value '%s' is not allowed)", model->u.element->name, model->u.element->fixed, node->children->content); + r_node = check_and_resolve_href(node); + if (r_node && r_node->children && r_node->children->content) { + if (model->u.element->fixed && strcmp(model->u.element->fixed, (char*)r_node->children->content) != 0) { + soap_error3(E_ERROR, "Encoding: Element '%s' has fixed value '%s' (value '%s' is not allowed)", model->u.element->name, model->u.element->fixed, r_node->children->content); } - val = master_to_zval(model->u.element->encode, node); + val = master_to_zval(model->u.element->encode, r_node); } else if (model->u.element->fixed) { xmlNodePtr dummy = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlNodeSetContent(dummy, BAD_CAST(model->u.element->fixed)); @@ -1155,7 +1156,7 @@ val = master_to_zval(model->u.element->encode, dummy); xmlFreeNode(dummy); } else { - val = master_to_zval(model->u.element->encode, node); + val = master_to_zval(model->u.element->encode, r_node); } if ((node = get_node(node->next, model->u.element->name)) != NULL) { zval *array; http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/bug38536.phpt?view=markup&rev=1.1 Index: php-src/ext/soap/tests/bugs/bug38536.phpt +++ php-src/ext/soap/tests/bugs/bug38536.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/bug38536.wsdl?view=markup&rev=1.1 Index: php-src/ext/soap/tests/bugs/bug38536.wsdl +++ php-src/ext/soap/tests/bugs/bug38536.wsdl -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php