Re: cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
| From: | Ilia Alshanetsky | 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 UTCIlia AlshanetskyModified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.cLog: 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