dmitry Fri Feb 4 10:42:27 2005 EDT
Modified files: (Branch: PHP_5_0)
/php-src NEWS
/php-src/ext/soap soap.c
Log:
Fixed bug #31832 (SOAP encoding problem with complex types in WSDL mode with
multiple parts)
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.234&r2=1.1760.2.235&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1760.2.234 php-src/NEWS:1.1760.2.235
--- php-src/NEWS:1.1760.2.234 Fri Feb 4 09:29:05 2005
+++ php-src/NEWS Fri Feb 4 10:42:27 2005
@@ -17,6 +17,8 @@
of true. (Tony)
- Fixed bug #31842 (*date('r') does not return RFC2822 conforming date string).
(Jani)
+- Fixed bug #31832 (SOAP encoding problem with complex types in WSDL mode with
+ multiple parts). (Dmitry)
- Fixed bug #31797 (exif_read_data() uses too low nesting limit). (Ilia)
- Fixed bug #31796 (readline completion handler does not handle empty return
values). (Ilia)
http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.110.2.24&r2=1.110.2.25&ty=u
Index: php-src/ext/soap/soap.c
diff -u php-src/ext/soap/soap.c:1.110.2.24 php-src/ext/soap/soap.c:1.110.2.25
--- php-src/ext/soap/soap.c:1.110.2.24 Wed Feb 2 05:34:21 2005
+++ php-src/ext/soap/soap.c Fri Feb 4 10:42:27 2005
@@ -17,7 +17,7 @@
| Dmitry Stogov <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: soap.c,v 1.110.2.24 2005/02/02 10:34:21 dmitry Exp $ */
+/* $Id: soap.c,v 1.110.2.25 2005/02/04 15:42:27 dmitry Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -3161,13 +3161,12 @@
zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(ret), &pos);
while (zend_hash_get_current_data_ex(Z_ARRVAL_P(ret), (void
**)&data, &pos) != FAILURE) {
- char *param_name;
+ char *param_name = NULL;
int param_name_len;
- long param_index;
+ long param_index = i;
zend_hash_get_current_key_ex(Z_ARRVAL_P(ret),
¶m_name, ¶m_name_len, ¶m_index, 0, &pos);
parameter = get_param(function, param_name,
param_index, TRUE);
-
if (style == SOAP_RPC) {
param = serialize_parameter(parameter, *data,
i, param_name, use, method TSRMLS_CC);
} else {
@@ -3788,6 +3787,16 @@
if (param_name != NULL) {
if (zend_hash_find(ht, param_name, strlen(param_name), (void
**)&tmp) != FAILURE) {
return *tmp;
+ } else {
+ HashPosition pos;
+
+ zend_hash_internal_pointer_reset_ex(ht, &pos);
+ while (zend_hash_get_current_data_ex(ht, (void **)&tmp,
&pos) != FAILURE) {
+ if ((*tmp)->paramName && strcmp(param_name,
(*tmp)->paramName) == 0) {
+ return *tmp;
+ }
+ zend_hash_move_forward_ex(ht, &pos);
+ }
}
} else {
if (zend_hash_index_find(ht, index, (void **)&tmp) != FAILURE) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php