[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
felipe Sun Oct 26 02:02:05 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: - MFH: Fixed bug #46389 (NetWare needs small patch for _timezone) (patch by guenter at php.net) http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.42r2=1.103.2.21.2.43diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.42 php-src/ext/soap/php_encoding.c:1.103.2.21.2.43 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.42 Thu Oct 16 15:49:18 2008 +++ php-src/ext/soap/php_encoding.c Sun Oct 26 02:02:05 2008 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.42 2008/10/16 15:49:18 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.43 2008/10/26 02:02:05 felipe Exp $ */ #include time.h @@ -2876,7 +2876,7 @@ #ifdef HAVE_TM_GMTOFF snprintf(tzbuf, sizeof(tzbuf), %c%02d:%02d, (ta-tm_gmtoff 0) ? '-' : '+', abs(ta-tm_gmtoff / 3600), abs( (ta-tm_gmtoff % 3600) / 60 )); #else -# ifdef __CYGWIN__ +# if defined(__CYGWIN__) || defined(NETWARE) snprintf(tzbuf, sizeof(tzbuf), %c%02d:%02d, ((ta-tm_isdst ? _timezone - 3600:_timezone)0)?'-':'+', abs((ta-tm_isdst ? _timezone - 3600 : _timezone) / 3600), abs(((ta-tm_isdst ? _timezone - 3600 : _timezone) % 3600) / 60)); # else snprintf(tzbuf, sizeof(tzbuf), %c%02d:%02d, ((ta-tm_isdst ? timezone - 3600:timezone)0)?'-':'+', abs((ta-tm_isdst ? timezone - 3600 : timezone) / 3600), abs(((ta-tm_isdst ? timezone - 3600 : timezone) % 3600) / 60)); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
On Sun, Oct 26, 2008 at 04:02, Felipe Pena [EMAIL PROTECTED] wrote: felipe Sun Oct 26 02:02:05 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: - MFH: Fixed bug #46389 (NetWare needs small patch for _timezone) (patch by guenter at php.net) NEWS entry? -Hannes -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
dmitry Thu Oct 16 15:49:18 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: ws http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.41r2=1.103.2.21.2.42diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.41 php-src/ext/soap/php_encoding.c:1.103.2.21.2.42 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.41 Thu Oct 16 15:36:46 2008 +++ php-src/ext/soap/php_encoding.c Thu Oct 16 15:49:18 2008 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.41 2008/10/16 15:36:46 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.42 2008/10/16 15:49:18 dmitry Exp $ */ #include time.h @@ -447,21 +447,21 @@ zend_binary_strncasecmp(ce-name, ce-name_length, Z_STRVAL_PP(tmp), ce-name_length, ce-name_length) == 0 zend_hash_get_current_key_ex(SOAP_GLOBAL(class_map), type_name, type_len, idx, 0, pos) == HASH_KEY_IS_STRING) { - /* TODO: namespace isn't stored */ - encodePtr enc = NULL; - if (SOAP_GLOBAL(sdl)) { - enc = get_encoder(SOAP_GLOBAL(sdl), SOAP_GLOBAL(sdl)-target_ns, type_name); - if (!enc) { - enc = find_encoder_by_type_name(SOAP_GLOBAL(sdl), type_name); - } - } - if (enc) { - if (encode != enc style == SOAP_LITERAL) { + /* TODO: namespace isn't stored */ + encodePtr enc = NULL; + if (SOAP_GLOBAL(sdl)) { + enc = get_encoder(SOAP_GLOBAL(sdl), SOAP_GLOBAL(sdl)-target_ns, type_name); + if (!enc) { + enc = find_encoder_by_type_name(SOAP_GLOBAL(sdl), type_name); + } + } + if (enc) { + if (encode != enc style == SOAP_LITERAL) { add_type = 1; - } - encode = enc; - } - break; + } + encode = enc; + } + break; } } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
andrei Fri Apr 6 18:25:49 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: Typo? http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.27r2=1.103.2.21.2.28diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.27 php-src/ext/soap/php_encoding.c:1.103.2.21.2.28 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.27 Mon Apr 2 13:43:08 2007 +++ php-src/ext/soap/php_encoding.c Fri Apr 6 18:25:49 2007 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.27 2007/04/02 13:43:08 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.28 2007/04/06 18:25:49 andrei Exp $ */ #include time.h @@ -1016,7 +1016,7 @@ if (Z_TYPE_P(data) == IS_DOUBLE) { char s[256]; - snprintf(s, sizeof(s), %0.0F,floor(Z_DVAL_P(data))); + snprintf(s, sizeof(s), %0.0f,floor(Z_DVAL_P(data))); xmlNodeSetContent(ret, BAD_CAST(s)); } else { zval tmp = *data; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
andrei Fri Apr 6 18:27:58 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: Apologies. Didn't realize we were using custom snprintf(). http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.28r2=1.103.2.21.2.29diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.28 php-src/ext/soap/php_encoding.c:1.103.2.21.2.29 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.28 Fri Apr 6 18:25:49 2007 +++ php-src/ext/soap/php_encoding.c Fri Apr 6 18:27:58 2007 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.28 2007/04/06 18:25:49 andrei Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.29 2007/04/06 18:27:58 andrei Exp $ */ #include time.h @@ -1016,7 +1016,7 @@ if (Z_TYPE_P(data) == IS_DOUBLE) { char s[256]; - snprintf(s, sizeof(s), %0.0f,floor(Z_DVAL_P(data))); + snprintf(s, sizeof(s), %0.0F,floor(Z_DVAL_P(data))); xmlNodeSetContent(ret, BAD_CAST(s)); } else { zval tmp = *data; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
dmitry Mon Nov 6 13:22:50 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: MFH: Fixed decoding list of arrays (related to bug #39121) http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.13r2=1.103.2.21.2.14diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.13 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.13 Tue Oct 24 05:20:50 2006 +++ php-src/ext/soap/php_encoding.c Mon Nov 6 13:22:49 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.13 2006/10/24 05:20:50 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.14 2006/11/06 13:22:49 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); +
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
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.11r2=1.103.2.21.2.12diff_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 [EMAIL PROTECTED] | +--+ */ -/* $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); +
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
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.11r2=1.103.2.21.2.12diff_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 [EMAIL PROTECTED] | +- -+ */ -/* $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++; +
RE: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
I'll do it tomorrow morning. Dmitry. -Original Message- From: Ilia Alshanetsky [mailto:[EMAIL PROTECTED] On Behalf Of Ilia Alshanetsky Sent: Monday, October 23, 2006 7:14 PM To: Dmitry Stogov Cc: php-cvs@lists.php.net Subject: Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c 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.11r2=1.103.2.21.2.12diff_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 [EMAIL PROTECTED] | +- -+ */ -/* $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
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
dmitry Tue Oct 24 05:20:50 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: Revert patch because we are at last RC stage. http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.12r2=1.103.2.21.2.13diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u 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.13 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.12 Mon Oct 23 06:46:38 2006 +++ php-src/ext/soap/php_encoding.c Tue Oct 24 05:20:50 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.12 2006/10/23 06:46:38 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.13 2006/10/24 05:20:50 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,31 +1378,22 @@ prop = get_zval_property(ret, (char*)trav-name TSRMLS_CC); if (!prop) { - 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); - } + set_zval_property(ret, (char*)trav-name, tmpVal 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); +
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c /ext/soap/tests typemap013.phpt
dmitry Tue Oct 3 07:00:35 2006 UTC Added files: (Branch: PHP_5_2) /php-src/ext/soap/tests typemap013.phpt Modified files: /php-src/ext/soap php_encoding.c Log: Fixed possible crash with default namespaces http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.10r2=1.103.2.21.2.11diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.10 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.10 Wed Sep 20 13:42:50 2006 +++ php-src/ext/soap/php_encoding.c Tue Oct 3 07:00:35 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.10 2006/09/20 13:42:50 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.11 2006/10/03 07:00:35 dmitry Exp $ */ #include time.h @@ -3035,6 +3035,43 @@ smart_str_free(nstype); } +static xmlNsPtr xmlSearchNsPrefixByHref(xmlDocPtr doc, xmlNodePtr node, const xmlChar * href) +{ + xmlNsPtr cur; + xmlNodePtr orig = node; + + while (node) { + if (node-type == XML_ENTITY_REF_NODE || + node-type == XML_ENTITY_NODE || + node-type == XML_ENTITY_DECL) { + return NULL; + } + if (node-type == XML_ELEMENT_NODE) { + cur = node-nsDef; + while (cur != NULL) { + if (cur-prefix cur-href xmlStrEqual(cur-href, href)) { + if (xmlSearchNs(doc, node, cur-prefix) == cur) { + return cur; + } + } + cur = cur-next; + } + if (orig != node) { + cur = node-ns; + if (cur != NULL) { + if (cur-prefix cur-href xmlStrEqual(cur-href, href)) { + if (xmlSearchNs(doc, node, cur-prefix) == cur) { + return cur; + } + } + } + } + } + node = node-parent; + } + return NULL; +} + xmlNsPtr encode_add_ns(xmlNodePtr node, const char* ns) { xmlNsPtr xmlns; @@ -3044,6 +3081,9 @@ } xmlns = xmlSearchNsByHref(node-doc, node, BAD_CAST(ns)); + if (xmlns != NULL xmlns-prefix == NULL) { + xmlns = xmlSearchNsPrefixByHref(node-doc, node, BAD_CAST(ns)); + } if (xmlns == NULL) { xmlChar* prefix; TSRMLS_FETCH(); @@ -3054,9 +3094,19 @@ smart_str prefix = {0}; int num = ++SOAP_GLOBAL(cur_uniq_ns); - smart_str_appendl(prefix, ns, 2); - smart_str_append_long(prefix, num); - smart_str_0(prefix); + while (1) { + smart_str_appendl(prefix, ns, 2); + smart_str_append_long(prefix, num); + smart_str_0(prefix); + if (xmlSearchNs(node-doc, node, BAD_CAST(prefix.c)) == NULL) { + break; + } + smart_str_free(prefix); + prefix.c = NULL; + prefix.len = 0; + num = ++SOAP_GLOBAL(cur_uniq_ns); + } + xmlns = xmlNewNs(node-doc-children, BAD_CAST(ns), BAD_CAST(prefix.c)); smart_str_free(prefix); } http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/typemap013.phpt?view=markuprev=1.1 Index: php-src/ext/soap/tests/typemap013.phpt +++ php-src/ext/soap/tests/typemap013.phpt -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c soap.c
dmitry Tue Jul 11 14:35:50 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c soap.c Log: Nuke signed/unsigned compiler warnings http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.6r2=1.103.2.21.2.7diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.6 php-src/ext/soap/php_encoding.c:1.103.2.21.2.7 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.6 Tue Jul 11 14:24:18 2006 +++ php-src/ext/soap/php_encoding.c Tue Jul 11 14:35:50 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.6 2006/07/11 14:24:18 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.7 2006/07/11 14:35:50 dmitry Exp $ */ #include time.h @@ -1755,7 +1755,8 @@ zval **zprop; char *str_key; ulong index; - int key_type, str_key_len; + int key_type; + unsigned int str_key_len; key_type = zend_hash_get_current_key_ex(prop, str_key, str_key_len, index, FALSE, NULL); zend_hash_get_current_data(prop, (void **)zprop); @@ -2402,7 +2403,7 @@ xmlNodePtr key; zval **temp_data; char *key_val; - int int_val; + ulong int_val; zend_hash_get_current_data(data-value.ht, (void **)temp_data); if (Z_TYPE_PP(temp_data) != IS_NULL) { @@ -2410,7 +2411,7 @@ xmlAddChild(xmlParam, item); key = xmlNewNode(NULL, BAD_CAST(key)); xmlAddChild(item,key); - if (zend_hash_get_current_key(data-value.ht, key_val, (long *)int_val, FALSE) == HASH_KEY_IS_STRING) { + if (zend_hash_get_current_key(data-value.ht, key_val, int_val, FALSE) == HASH_KEY_IS_STRING) { if (style == SOAP_ENCODED) { set_xsi_type(key, xsd:string); } http://cvs.php.net/viewvc.cgi/php-src/ext/soap/soap.c?r1=1.156.2.28.2.5r2=1.156.2.28.2.6diff_format=u Index: php-src/ext/soap/soap.c diff -u php-src/ext/soap/soap.c:1.156.2.28.2.5 php-src/ext/soap/soap.c:1.156.2.28.2.6 --- php-src/ext/soap/soap.c:1.156.2.28.2.5 Tue Jul 11 14:24:18 2006 +++ php-src/ext/soap/soap.c Tue Jul 11 14:35:50 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: soap.c,v 1.156.2.28.2.5 2006/07/11 14:24:18 dmitry Exp $ */ +/* $Id: soap.c,v 1.156.2.28.2.6 2006/07/11 14:35:50 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -3539,8 +3539,8 @@ 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 = NULL; - int param_name_len; - long param_index = i; + unsigned int param_name_len; + ulong param_index = i; zend_hash_get_current_key_ex(Z_ARRVAL_P(ret), param_name, param_name_len, param_index, 0, pos); parameter = get_param(function, param_name, param_index, TRUE); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
rasmus Thu Jun 15 20:49:05 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: MFH: I don't think the call to xmlNodeSetContentLen() is needed here and it is causing performance problems because it tries to parse the blob and create a subtree. Because we are escaping the string anyway, we are never going to get a subtree, but the entity parsing that is done by xmlNodeSetContentLen() is killing performance on large blobs of text. On one recent example it took a couple of minutes to parse whereas if we just create a text node like this and set the contents to the raw string it is down to milliseconds. http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.1r2=1.103.2.21.2.2diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.1 php-src/ext/soap/php_encoding.c:1.103.2.21.2.2 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.1 Fri May 26 09:02:33 2006 +++ php-src/ext/soap/php_encoding.c Thu Jun 15 20:49:05 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.1 2006/05/26 09:02:33 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.2 2006/06/15 20:49:05 rasmus Exp $ */ #include time.h @@ -727,7 +727,7 @@ static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) { - xmlNodePtr ret; + xmlNodePtr ret, text; char *str; int new_len; TSRMLS_FETCH(); @@ -737,13 +737,15 @@ FIND_ZVAL_NULL(data, ret, style); if (Z_TYPE_P(data) == IS_STRING) { - str = php_escape_html_entities(Z_STRVAL_P(data), Z_STRLEN_P(data), new_len, 0, 0, NULL TSRMLS_CC); + str = estrndup(Z_STRVAL_P(data), Z_STRLEN_P(data)); + new_len = Z_STRLEN_P(data); } else { zval tmp = *data; zval_copy_ctor(tmp); convert_to_string(tmp); - str = php_escape_html_entities(Z_STRVAL(tmp), Z_STRLEN(tmp), new_len, 0, 0, NULL TSRMLS_CC); + str = estrndup(Z_STRVAL(tmp), Z_STRLEN(tmp)); + new_len = Z_STRLEN(tmp); zval_dtor(tmp); } @@ -765,7 +767,8 @@ soap_error1(E_ERROR, Encoding: string '%s' is not a valid utf-8 string, str); } - xmlNodeSetContentLen(ret, str, new_len); + text = xmlNewTextLen(str, new_len); + xmlAddChild(ret, text); efree(str); if (style == SOAP_ENCODED) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/soap php_encoding.c
rasmus Thu Jun 15 22:45:30 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/soap php_encoding.c Log: MFH: Optimize the other string conversion functions here to just create raw text nodes. http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.2r2=1.103.2.21.2.3diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.2 php-src/ext/soap/php_encoding.c:1.103.2.21.2.3 --- php-src/ext/soap/php_encoding.c:1.103.2.21.2.2 Thu Jun 15 20:49:05 2006 +++ php-src/ext/soap/php_encoding.c Thu Jun 15 22:45:30 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.21.2.2 2006/06/15 20:49:05 rasmus Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21.2.3 2006/06/15 22:45:30 rasmus Exp $ */ #include time.h @@ -779,7 +779,7 @@ static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) { - xmlNodePtr ret; + xmlNodePtr ret, text; unsigned char *str; int str_len; @@ -789,7 +789,8 @@ if (Z_TYPE_P(data) == IS_STRING) { str = php_base64_encode((unsigned char*)Z_STRVAL_P(data), Z_STRLEN_P(data), str_len); - xmlNodeSetContentLen(ret, str, str_len); + text = xmlNewTextLen(str, str_len); + xmlAddChild(ret, text); efree(str); } else { zval tmp = *data; @@ -797,7 +798,8 @@ zval_copy_ctor(tmp); convert_to_string(tmp); str = php_base64_encode((unsigned char*)Z_STRVAL(tmp), Z_STRLEN(tmp), str_len); - xmlNodeSetContentLen(ret, str, str_len); + text = xmlNewTextLen(str, str_len); + xmlAddChild(ret, text); efree(str); zval_dtor(tmp); } @@ -811,7 +813,7 @@ static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) { static char hexconvtab[] = 0123456789ABCDEF; - xmlNodePtr ret; + xmlNodePtr ret, text; unsigned char *str; zval tmp; int i, j; @@ -834,7 +836,8 @@ } str[j] = '\0'; - xmlNodeSetContentLen(ret, str, Z_STRLEN_P(data) * 2 * sizeof(char)); + text = xmlNewTextLen(str, Z_STRLEN_P(data) * 2 * sizeof(char)); + xmlAddChild(ret, text); efree(str); if (data == tmp) { zval_dtor(tmp); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php