Re: cvs: php-src(PHP_5_2) /ext/soap php_encoding.c

From: Date: Mon, 23 Oct 2006 15:14:18 +0000
Subject: Re: cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
References: 1  Groups: php.cvs 
Request: Send a blank email to php-cvs+get-41193@lists.php.net to get a copy of this message
Dmitry, This is not a critical fix, please revert it and hold off until 5.2.0 release before applying it to the 5.2 branch. Thanks On 23-Oct-06, at 2:46 AM, Dmitry Stogov wrote:
dmitry Mon Oct 23 06:46:38 2006 UTC
  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/soap	php_encoding.c
Log: Fixed decoding of list of arrays in non-WSDL mode. (releated to bug #39121) http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.11&r2=1.103.2.21.2.12&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.11 php-src/ext/soap/php_encoding.c:1.103.2.21.2.12 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.11 Tue Oct 3 07:00:35 2006 +++ php-src/ext/soap/php_encoding.c Mon Oct 23 06:46:38 2006 @@ -17,7 +17,7 @@
   |          Dmitry Stogov <dmitry@zend.com>                             |
   +----------------------------------------------------------------------+
*/ -/* $Id: php_encoding.c,v 1.103.2.21.2.11 2006/10/03 07:00:35 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.12 2006/10/23 06:46:38 dmitry Exp $ */ #include <time.h> @@ -1102,23 +1102,23 @@ } add_string_to_string(val, val, val2); zval_ptr_dtor(&val2); - node = node->next; + node = node->next; } } if (any == NULL) { any = val; } else { if (Z_TYPE_P(any) != IS_ARRAY) {
-			    /* Convert into array */
-			    zval *arr;
+ /* Convert into array */ + zval *arr;
-			    MAKE_STD_ZVAL(arr);
-			    array_init(arr);
- add_next_index_zval(arr, any); - any = arr; - } - /* Add array element */ - add_next_index_zval(any, val); + MAKE_STD_ZVAL(arr); + array_init(arr); + add_next_index_zval(arr, any); + any = arr; + } + /* Add array element */ + add_next_index_zval(any, val); } } node = node->next; @@ -1378,22 +1378,31 @@ prop = get_zval_property(ret, (char*)trav->name TSRMLS_CC); if (!prop) {
-          set_zval_property(ret, (char*)trav->name, tmpVal TSRMLS_CC);
+ if (!trav->next || !get_node(trav->next, (char*)trav->name)) { + set_zval_property(ret, (char*)trav->name, tmpVal TSRMLS_CC); + } else { + zval *arr; + + MAKE_STD_ZVAL(arr); + array_init(arr); + add_next_index_zval(arr, tmpVal); + set_zval_property(ret, (char*)trav->name, arr TSRMLS_CC); + } } else { - /* Property already exist - make array */ - if (Z_TYPE_P(prop) != IS_ARRAY) {
-				    /* Convert into array */
-				    zval *arr;
-
-				    MAKE_STD_ZVAL(arr);
-				    array_init(arr);
-				    prop->refcount++;
- add_next_index_zval(arr, prop);
-	          set_zval_property(ret, (char*)trav->name, arr TSRMLS_CC);
- prop = arr; - } - /* Add array element */ - add_next_index_zval(prop, tmpVal); + /* Property already exist - make array */ + if (Z_TYPE_P(prop) != IS_ARRAY) { + /* Convert into array */ + zval *arr; + + MAKE_STD_ZVAL(arr); + array_init(arr); + prop->refcount++; + add_next_index_zval(arr, prop); + set_zval_property(ret, (char*)trav->name, arr TSRMLS_CC); + prop = arr; + } + /* Add array element */ + add_next_index_zval(prop, tmpVal); } } trav = trav->next; --PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Ilia Alshanetsky

« previous php.cvs (#41193) next »