[PHP-CVS] tag php-src: create tag php-5.4.11
Tag php-5.4.11 in php-src.git was created Tag: 663d9f78a986a6f49a3247f0724dd617bfda9ee7 Tagger: Stanislav Malyshev Tue Jan 15 23:10:55 2013 -0800 Log: 5.4.11 -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (Darwin) iF4EABEIAAYFAlD2UoQACgkQL3lWvF2gS13i7wD9Hvy4OIcSM8upWKdSTaeQc77g Jt7zCdSZGA0C1R3BBoMA/RdlAcV8wJhiBclOU4CeDQ+lKoxqZoZQY1OUl6ZTjeQa =OTGm -END PGP SIGNATURE- Link: http://git.php.net/?p=php-src.git;a=tag;h=663d9f78a986a6f49a3247f0724dd617bfda9ee7 Target: d224386bd8424345a5178b5ba0c9c881e83c7fe0 Author: Stanislav Malyshev Tue, 15 Jan 2013 12:10:47 -0800 Parents: 9ef52cac0542098f4b8dd7c556a6e900bfd2b0f3 Target link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d224386bd8424345a5178b5ba0c9c881e83c7fe0 Target log: 5.4.11 Changed paths: M NEWS M configure.in M main/php_version.h -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: 5.4.11: NEWS configure.in main/php_version.h
Commit:d224386bd8424345a5178b5ba0c9c881e83c7fe0 Author:Stanislav Malyshev Tue, 15 Jan 2013 12:10:47 -0800 Parents: 9ef52cac0542098f4b8dd7c556a6e900bfd2b0f3 Branches: PHP-5.4.11 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d224386bd8424345a5178b5ba0c9c881e83c7fe0 Log: 5.4.11 Changed paths: M NEWS M configure.in M main/php_version.h Diff: diff --git a/NEWS b/NEWS index 444a68e..b324632 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ PHPNEWS ||| -03 Jan 2013, PHP 5.4.11 RC1 +17 Jan 2013, PHP 5.4.11 - Core: . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). diff --git a/configure.in b/configure.in index 47a9848..a4730c8 100644 --- a/configure.in +++ b/configure.in @@ -120,7 +120,7 @@ int zend_sprintf(char *buffer, const char *format, ...); PHP_MAJOR_VERSION=5 PHP_MINOR_VERSION=4 PHP_RELEASE_VERSION=11 -PHP_EXTRA_VERSION="RC1" +PHP_EXTRA_VERSION="" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 1 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION` diff --git a/main/php_version.h b/main/php_version.h index c179a01..cf6f240 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -3,6 +3,6 @@ #define PHP_MAJOR_VERSION 5 #define PHP_MINOR_VERSION 4 #define PHP_RELEASE_VERSION 11 -#define PHP_EXTRA_VERSION "RC1" -#define PHP_VERSION "5.4.11RC1" +#define PHP_EXTRA_VERSION "" +#define PHP_VERSION "5.4.11" #define PHP_VERSION_ID 50411 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Fix News: NEWS
Commit:94a4e0f8235b165b0b72f91656db1f4059e8c176 Author:Christopher Jones Tue, 15 Jan 2013 20:38:24 -0800 Parents: 142c40f32c075a8eb706f2e630b934f39e711b70 Branches: PHP-5.4 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=94a4e0f8235b165b0b72f91656db1f4059e8c176 Log: Fix News Changed paths: M NEWS Diff: diff --git a/NEWS b/NEWS index 8fc3d6c..a10ef4e 100644 --- a/NEWS +++ b/NEWS @@ -29,13 +29,15 @@ PHP NEWS . Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't using sqlite3_*_int64 API). (srgoogleguy, Lars) -- PDO_sqlite: - . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even -on 64bit builds in pdo_sqlite). (srgoogleguy, Lars) +- PDO_OCI . Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence) . Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long testsuite). (hswong3i, Lars) +- PDO_sqlite: + . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even +on 64bit builds in pdo_sqlite). (srgoogleguy, Lars) + ?? ??? 2012, PHP 5.4.11 - Core: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: NEWS
Commit:77010bf9bf45c46d844b336c18cc8102cfc7e249 Author:Adam Harvey Wed, 16 Jan 2013 10:19:13 +0800 Parents: 2f7aafe9929d843ae089a7072c5e6d9bd70c77ae 142c40f32c075a8eb706f2e630b934f39e711b70 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=77010bf9bf45c46d844b336c18cc8102cfc7e249 Log: Merge branch 'PHP-5.4' into PHP-5.5 * PHP-5.4: Update the arguments in the prototype of fpm_socket_unix_test_connect(). Changed paths: MM NEWS Diff: diff --cc NEWS index 212029c,8fc3d6c..6395b34 --- a/NEWS +++ b/NEWS @@@ -1,63 -1,106 +1,66 @@@ PHP NEWS ||| -?? ??? 2012, PHP 5.4.12 +?? ??? 201?, PHP 5.5.0 Alpha 3 - Core: - . Fixed bug #63982 (isset() inconsistently produces a fatal error on -protected property). (Stas) - . Fixed bug #63943 (Bad warning text from strpos() on empty needle). -(Laruence) - . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) - . Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very -different length). (Gustavo) - . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry) - . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars) - -- Date: - . Fixed bug #63699 (Performance improvements for various ext/date functions). -(Lars, original patch by njaguar at gmail dot com) - . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. -(Derick) - -- FPM: - . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam) - -- Litespeed: - . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George) - -- ext/sqlite3: - . Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't -using sqlite3_*_int64 API). (srgoogleguy, Lars) - -- PDO_sqlite: - . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even -on 64bit builds in pdo_sqlite). (srgoogleguy, Lars) - . Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence) - . Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long -testsuite). (hswong3i, Lars) + . Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence) -?? ??? 2012, PHP 5.4.11 - -- Core: - . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). -(Johannes) - . Fixed bug #43177 (Errors in eval()'ed code produce status code 500). -(Todd Ruth, Stas). - -- Filter: - . Fixed bug #63757 (getenv() produces memory leak with CGI SAPI). (Dmitry) - . Fixed bug #54096 (FILTER_VALIDATE_INT does not accept +0 and -0). -(martin at divbyzero dot net, Lars) - -- JSON: - . Fixed bug #63737 (json_decode does not properly decode with options -parameter). (Adam) - -- CLI server - . Update list of common mime types. Added webm, ogv, ogg. (Lars, -pascalc at gmail dot com) +- General improvements: + . Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). (Pierrick) + . Fixed bug #63822 (Crash when using closures with ArrayAccess). +(Nikita Popov) + . Add Generator::throw() method. (Nikita Popov) + . Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, Lars) + . Bug #52126: timestamp for mail.log (Martin Jansen, Lars) -- cURL extension: - . Fixed bug (segfault due to libcurl connection caching). (Pierrick) - . Fixed bug #63859 (Memory leak when reusing curl-handle). (Pierrick) - . Fixed bug #63795 (CURL >= 7.28.0 no longer support value 1 for -CURLOPT_SSL_VERIFYHOST). (Pierrick) - . Fixed bug #63352 (Can't enable hostname validation when using curl stream -wrappers). (Pierrick) - . Fixed bug #55438 (Curlwapper is not sending http header randomly). -(php...@lostreality.org, Pierrick) +- mysqlnd + . Fixed return value of mysqli_stmt_affected_rows() in the time after +prepare() and before execute(). (Andrey) -20 Dec 2012, PHP 5.4.10 +- cURL: + . Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror +curl_pause, curl_reset, curl_share_close, curl_share_init, + curl_share_setopt curl_strerror and curl_unescape. (Pierrick) + . Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION, +CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE, + CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick) -- Core: - . Fixed bug #63726 (Memleak with static properties and internal/user -classes). (Laruence) - . Fixed bug #63635 (Segfault in gc_collect_cycles). (Dmitry) - . Fixed bug #63512 (parse_ini_file() with INI_SCANNER_RAW removes quotes -from value). (Pierrick) - . Fixed bug #63468 (wrong called method as callback with inheritance). -(Laruence) - . Fixed bug #63451 (config.guess file does not have AIX 7 defined, -sha
[PHP-CVS] com php-src: Merge branch 'PHP-5.3' into PHP-5.4: NEWS
Commit:142c40f32c075a8eb706f2e630b934f39e711b70 Author:Adam Harvey Wed, 16 Jan 2013 10:18:00 +0800 Parents: 9498cf6194496a1dd6b400e3e9a85ff005dc3dcd f63a9f6c11c05aa76158b6cae0e05340d303a6af Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=142c40f32c075a8eb706f2e630b934f39e711b70 Log: Merge branch 'PHP-5.3' into PHP-5.4 * PHP-5.3: Update the arguments in the prototype of fpm_socket_unix_test_connect(). Changed paths: MM NEWS Diff: diff --cc NEWS index bcff155,928d829..8fc3d6c --- a/NEWS +++ b/NEWS @@@ -1,58 -1,17 +1,61 @@@ PHP NEWS ||| -?? ??? 2013, PHP 5.3.23 +?? ??? 2012, PHP 5.4.12 -?? ??? 2013, PHP 5.3.22 - -- Zend Engine: +- Core: + . Fixed bug #63982 (isset() inconsistently produces a fatal error on +protected property). (Stas) + . Fixed bug #63943 (Bad warning text from strpos() on empty needle). +(Laruence) . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) + . Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very +different length). (Gustavo) + . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry) + . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars) + +- Date: + . Fixed bug #63699 (Performance improvements for various ext/date functions). +(Lars, original patch by njaguar at gmail dot com) + . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. +(Derick) + ++- FPM: ++ . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam) ++ +- Litespeed: + . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George) + +- ext/sqlite3: + . Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't +using sqlite3_*_int64 API). (srgoogleguy, Lars) + +- PDO_sqlite: + . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even +on 64bit builds in pdo_sqlite). (srgoogleguy, Lars) + . Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence) + . Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long +testsuite). (hswong3i, Lars) + +?? ??? 2012, PHP 5.4.11 + +- Core: . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). (Johannes) + . Fixed bug #43177 (Errors in eval()'ed code produce status code 500). +(Todd Ruth, Stas). -- Core - . Fixed bug #63943 (Bad warning text from strpos() on empty needle). -(Laruence) +- Filter: + . Fixed bug #63757 (getenv() produces memory leak with CGI SAPI). (Dmitry) + . Fixed bug #54096 (FILTER_VALIDATE_INT does not accept +0 and -0). +(martin at divbyzero dot net, Lars) + +- JSON: + . Fixed bug #63737 (json_decode does not properly decode with options +parameter). (Adam) + +- CLI server + . Update list of common mime types. Added webm, ogv, ogg. (Lars, +pascalc at gmail dot com) - cURL extension: . Fixed bug (segfault due to libcurl connection caching). (Pierrick) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Update the arguments in the prototype of fpm_socket_unix_test_connect().: NEWS sapi/fpm/fpm/fpm_sockets.h
Commit:f63a9f6c11c05aa76158b6cae0e05340d303a6af Author:Adam Harvey Wed, 16 Jan 2013 10:06:56 +0800 Parents: c077074c1379b5faed386106fdbb53f5d17fd6e7 Branches: PHP-5.3 PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=f63a9f6c11c05aa76158b6cae0e05340d303a6af Log: Update the arguments in the prototype of fpm_socket_unix_test_connect(). Fixes bug #63999 (php with fpm fails to build on Solaris 10 or 11). Bugs: https://bugs.php.net/63999 Changed paths: M NEWS M sapi/fpm/fpm/fpm_sockets.h Diff: diff --git a/NEWS b/NEWS index e78af23..928d829 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,9 @@ PHP NEWS . Fixed bug #55397 (comparsion of incomplete DateTime causes SIGSEGV). (Laruence, Derick) +- FPM: + . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam) + 20 Dec 2012, PHP 5.3.20 - Zend Engine: diff --git a/sapi/fpm/fpm/fpm_sockets.h b/sapi/fpm/fpm/fpm_sockets.h index 499ba6b..cce5712 100644 --- a/sapi/fpm/fpm/fpm_sockets.h +++ b/sapi/fpm/fpm/fpm_sockets.h @@ -25,7 +25,7 @@ enum fpm_address_domain fpm_sockets_domain_from_address(char *addr); int fpm_sockets_init_main(); int fpm_socket_get_listening_queue(int sock, unsigned *cur_lq, unsigned *max_lq); -int fpm_socket_unix_test_connect(struct sockaddr_un *sun, size_t socklen); +int fpm_socket_unix_test_connect(struct sockaddr_un *sock, size_t socklen); static inline int fd_set_blocked(int fd, int blocked) /* {{{ */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: - Fixed ZTS build: ext/date/php_date.c
Commit:2f7aafe9929d843ae089a7072c5e6d9bd70c77ae Author:Felipe Pena Tue, 15 Jan 2013 19:59:23 -0200 Parents: 18e160411e364ee02eff12e8ab516be9911be393 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=2f7aafe9929d843ae089a7072c5e6d9bd70c77ae Log: - Fixed ZTS build Changed paths: M ext/date/php_date.c Diff: diff --git a/ext/date/php_date.c b/ext/date/php_date.c index cc83130..54dc2f5 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2066,12 +2066,12 @@ static zend_object_value date_object_clone_date(zval *this_ptr TSRMLS_DC) return new_ov; } -static zval* date_clone_immutable(zval *object) +static zval* date_clone_immutable(zval *object TSRMLS_DC) { zval *new_object; ALLOC_ZVAL(new_object); - Z_OBJVAL_P(new_object) = date_object_clone_date(object); + Z_OBJVAL_P(new_object) = date_object_clone_date(object TSRMLS_CC); Z_SET_REFCOUNT_P(new_object, 1); Z_SET_ISREF_P(new_object); Z_TYPE_P(new_object) = IS_OBJECT; @@ -2970,7 +2970,7 @@ PHP_METHOD(DateTimeImmutable, modify) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_modify(new_object, modify, modify_len, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3037,7 +3037,7 @@ PHP_METHOD(DateTimeImmutable, add) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_add(new_object, interval, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3107,7 +3107,7 @@ PHP_METHOD(DateTimeImmutable, sub) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_sub(new_object, interval, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3197,7 +3197,7 @@ PHP_METHOD(DateTimeImmutable, setTimezone) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_timezone_set(new_object, timezone_object, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3280,7 +3280,7 @@ PHP_METHOD(DateTimeImmutable, setTime) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_time_set(new_object, h, i, s, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3328,7 +3328,7 @@ PHP_METHOD(DateTimeImmutable, setDate) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_date_set(new_object, y, m, d, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3380,7 +3380,7 @@ PHP_METHOD(DateTimeImmutable, setISODate) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_isodate_set(new_object, y, w, d, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3426,7 +3426,7 @@ PHP_METHOD(DateTimeImmutable, setTimestamp) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_timestamp_set(new_object, timestamp, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: - Fixed ZTS build: ext/date/php_date.c
Commit:7629c8db401b3695348d26c0785c9ab4b7e6ebb1 Author:Felipe Pena Tue, 15 Jan 2013 19:45:09 -0200 Parents: 85a949d9d4c5b216d6581f62df6b7d5b4787c130 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7629c8db401b3695348d26c0785c9ab4b7e6ebb1 Log: - Fixed ZTS build Changed paths: M ext/date/php_date.c Diff: diff --git a/ext/date/php_date.c b/ext/date/php_date.c index cc83130..54dc2f5 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2066,12 +2066,12 @@ static zend_object_value date_object_clone_date(zval *this_ptr TSRMLS_DC) return new_ov; } -static zval* date_clone_immutable(zval *object) +static zval* date_clone_immutable(zval *object TSRMLS_DC) { zval *new_object; ALLOC_ZVAL(new_object); - Z_OBJVAL_P(new_object) = date_object_clone_date(object); + Z_OBJVAL_P(new_object) = date_object_clone_date(object TSRMLS_CC); Z_SET_REFCOUNT_P(new_object, 1); Z_SET_ISREF_P(new_object); Z_TYPE_P(new_object) = IS_OBJECT; @@ -2970,7 +2970,7 @@ PHP_METHOD(DateTimeImmutable, modify) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_modify(new_object, modify, modify_len, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3037,7 +3037,7 @@ PHP_METHOD(DateTimeImmutable, add) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_add(new_object, interval, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3107,7 +3107,7 @@ PHP_METHOD(DateTimeImmutable, sub) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_sub(new_object, interval, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3197,7 +3197,7 @@ PHP_METHOD(DateTimeImmutable, setTimezone) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_timezone_set(new_object, timezone_object, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3280,7 +3280,7 @@ PHP_METHOD(DateTimeImmutable, setTime) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_time_set(new_object, h, i, s, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3328,7 +3328,7 @@ PHP_METHOD(DateTimeImmutable, setDate) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_date_set(new_object, y, m, d, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3380,7 +3380,7 @@ PHP_METHOD(DateTimeImmutable, setISODate) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_isodate_set(new_object, y, w, d, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); @@ -3426,7 +3426,7 @@ PHP_METHOD(DateTimeImmutable, setTimestamp) RETURN_FALSE; } - new_object = date_clone_immutable(object); + new_object = date_clone_immutable(object TSRMLS_CC); php_date_timestamp_set(new_object, timestamp, return_value TSRMLS_CC); RETURN_ZVAL(new_object, 0, 1); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: ext/standard/string.c
Commit:18e160411e364ee02eff12e8ab516be9911be393 Author:Anatoliy Belsky Tue, 15 Jan 2013 22:39:49 +0100 Parents: dba22c08640b02e68bfea68440246fec1fb7459d 9498cf6194496a1dd6b400e3e9a85ff005dc3dcd Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=18e160411e364ee02eff12e8ab516be9911be393 Log: Merge branch 'PHP-5.4' into PHP-5.5 * PHP-5.4: fixed build NEWS for bug #63893 Conflicts: NEWS Bugs: https://bugs.php.net/63893 Changed paths: MM ext/standard/string.c Diff: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: fixed build: ext/standard/string.c
Commit:9498cf6194496a1dd6b400e3e9a85ff005dc3dcd Author:Anatoliy Belsky Tue, 15 Jan 2013 22:36:29 +0100 Parents: 4c38003dbdbb5b66c9d61db4cfd3248d15c93729 Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=9498cf6194496a1dd6b400e3e9a85ff005dc3dcd Log: fixed build Changed paths: M ext/standard/string.c Diff: diff --git a/ext/standard/string.c b/ext/standard/string.c index 58b5483..42bf198 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -23,7 +23,11 @@ /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */ #include -#include +#ifdef PHP_WIN32 +# include "win32/php_stdint.h" +#else +# include +#endif #include "php.h" #include "php_rand.h" #include "php_string.h" -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Dereferencing process-handles no longer waits on those processes.: NEWS ext/standard/file.c ext/standard/file.h ext/standard/proc_open.c
Commit:dba22c08640b02e68bfea68440246fec1fb7459d Author:Jille Timmermans Tue, 15 Jan 2013 11:25:55 +0100 Committer: Lars Strojny Tue, 15 Jan 2013 21:50:35 +0100 Parents: 1bd193ed36d413f0d919856f65feb35a0b1580f3 Branches: PHP-5.5 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=dba22c08640b02e68bfea68440246fec1fb7459d Log: Dereferencing process-handles no longer waits on those processes. Implements FR #46487 Bugs: https://bugs.php.net/46487 Changed paths: M NEWS M ext/standard/file.c M ext/standard/file.h M ext/standard/proc_open.c Diff: diff --git a/NEWS b/NEWS index 4145dc5..212029c 100644 --- a/NEWS +++ b/NEWS @@ -247,4 +247,7 @@ PHP NEWS . Fixed bug #63248 (Load multiple magic files from a directory under Windows). (Anatoliy) +- General improvements: + . Implemented FR #46487 (Dereferencing process-handles no longer waits on those processes). (Jille Timmermans) + <<< NOTE: Insert NEWS from last stable release here prior to actual release! >>> diff --git a/ext/standard/file.c b/ext/standard/file.c index 74577ac..cf8b159 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -159,6 +159,7 @@ static ZEND_RSRC_DTOR_FUNC(file_context_dtor) static void file_globals_ctor(php_file_globals *file_globals_p TSRMLS_DC) { FG(pclose_ret) = 0; + FG(pclose_wait) = 0; FG(user_stream_current_filename) = NULL; FG(def_chunk_size) = PHP_SOCK_CHUNK_SIZE; FG(wrapper_errors) = NULL; @@ -960,7 +961,9 @@ PHP_FUNCTION(pclose) PHP_STREAM_TO_ZVAL(stream, &arg1); + FG(pclose_wait) = 1; zend_list_delete(stream->rsrc_id); + FG(pclose_wait) = 0; RETURN_LONG(FG(pclose_ret)); } /* }}} */ diff --git a/ext/standard/file.h b/ext/standard/file.h index 0a4512e..2bcdfd6 100644 --- a/ext/standard/file.h +++ b/ext/standard/file.h @@ -115,7 +115,7 @@ typedef struct _php_meta_tags_data { php_meta_tags_token php_next_meta_token(php_meta_tags_data * TSRMLS_DC); typedef struct { - int pclose_ret; + int pclose_ret; size_t def_chunk_size; long auto_detect_line_endings; long default_socket_timeout; @@ -126,6 +126,7 @@ typedef struct { HashTable *stream_wrappers; /* per-request copy of url_stream_wrappers_hash */ HashTable *stream_filters; /* per-request copy of stream_filters_hash */ HashTable *wrapper_errors; /* key: wrapper address; value: linked list of char* */ + int pclose_wait; } php_file_globals; #ifdef ZTS diff --git a/ext/standard/proc_open.c b/ext/standard/proc_open.c index 1edfe78..4e39a40 100644 --- a/ext/standard/proc_open.c +++ b/ext/standard/proc_open.c @@ -208,6 +208,7 @@ static void proc_open_rsrc_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC) DWORD wstatus; #elif HAVE_SYS_WAIT_H int wstatus; + int waitpid_options = 0; pid_t wait_pid; #endif @@ -220,18 +221,27 @@ static void proc_open_rsrc_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC) } #ifdef PHP_WIN32 - WaitForSingleObject(proc->childHandle, INFINITE); + if (FG(pclose_wait)) { + WaitForSingleObject(proc->childHandle, INFINITE); + } GetExitCodeProcess(proc->childHandle, &wstatus); - FG(pclose_ret) = wstatus; + if (wstatus == STILL_ACTIVE) { + FG(pclose_ret) = -1; + } else { + FG(pclose_ret) = wstatus; + } CloseHandle(proc->childHandle); #elif HAVE_SYS_WAIT_H + if (!FG(pclose_wait)) { + waitpid_options = WNOHANG; + } do { - wait_pid = waitpid(proc->child, &wstatus, 0); + wait_pid = waitpid(proc->child, &wstatus, waitpid_options); } while (wait_pid == -1 && errno == EINTR); - if (wait_pid == -1) { + if (wait_pid <= 0) { FG(pclose_ret) = -1; } else { if (WIFEXITED(wstatus)) @@ -300,7 +310,9 @@ PHP_FUNCTION(proc_close) ZEND_FETCH_RESOURCE(proc, struct php_process_handle *, &zproc, -1, "process", le_proc_open); + FG(pclose_wait) = 1; zend_list_delete(Z_LVAL_P(zproc)); + FG(pclose_wait) = 0; RETURN_LONG(FG(pclose_ret)); } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: NEWS for bug #63893: NEWS
Commit:200242595dabfdaf6093da3e9ae6fef246ea8906 Author:Gustavo Lopes Mon, 14 Jan 2013 17:17:58 +0100 Parents: d7bac4f5ba17c6fba00943a8bada49a4735a15a6 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=200242595dabfdaf6093da3e9ae6fef246ea8906 Log: NEWS for bug #63893 Bugs: https://bugs.php.net/63893 Changed paths: M NEWS Diff: diff --git a/NEWS b/NEWS index 28040f7..418bcc9 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,8 @@ PHP NEWS protected property). (Stas) . Fixed bug #63943 (Bad warning text from strpos() on empty needle). (Laruence) + . Fixed bug #63893 (poor efficiency of strtr() using array with keys of very +different length). (Gustavo) . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry) - Litespeed: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: ext/standard/string.c
Commit:1ce5a225899c19b79c64451e830cd3940ee2bff3 Author:Gustavo Lopes Mon, 14 Jan 2013 17:19:23 +0100 Parents: be07f815f240803fe7a48a5fb3d68a169bef4707 200242595dabfdaf6093da3e9ae6fef246ea8906 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=1ce5a225899c19b79c64451e830cd3940ee2bff3 Log: Merge branch 'PHP-5.4' into PHP-5.5 Conflicts: NEWS Changed paths: MM ext/standard/string.c Diff: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: UPGRADING.INTERNALS: document zend_qsort_r: UPGRADING.INTERNALS
Commit:70b25e9c61c849e590cc97137e893678cb5f98c3 Author:Gustavo Lopes Mon, 14 Jan 2013 17:27:20 +0100 Parents: 22390d33935d72d897a1c97158ce2848f8551cc1 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=70b25e9c61c849e590cc97137e893678cb5f98c3 Log: UPGRADING.INTERNALS: document zend_qsort_r Changed paths: M UPGRADING.INTERNALS Diff: diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS index 90c7a43..44cdfae 100644 --- a/UPGRADING.INTERNALS +++ b/UPGRADING.INTERNALS @@ -5,6 +5,7 @@ UPGRADE NOTES - PHP X.Y 1. Internal API changes a. Streams pooling API b. Lowercasing and locales + c. zend_qsort_r 2. Build system changes a. Unix build system changes @@ -53,6 +54,16 @@ such as strcasecmp, will be using locale rules. Two new functions - zend_binary_strncasecmp_l and zend_binary_strcasecmp_l - added as locale-based counterparts to zend_binary_strcasecmp and zend_binary_strncasecmp. + c. zend_qsort_r + +Added the function zend_qsort_r(): + +typedef int (*compare_r_func_t)(const void *, const void * TSRMLS_DC, void *); +void zend_qsort_r(void *base, size_t nmemb, size_t siz, compare_r_func_t compare, void *arg TSRMLS_DC); + +The extra argument it has (relatively to zend_qsort()) is passed to the +comparison function. + 2. Build system changes -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Optimize strtr w/ 2nd arg array: ext/standard/string.c
Commit:ccf15cf2dc92d11f92ee30c97e2d86b07f81e030 Author:Gustavo Lopes Mon, 7 Jan 2013 03:13:11 +0100 Committer: Gustavo Lopes Mon, 14 Jan 2013 12:22:41 +0100 Parents: 1a96fe0b3260b4b63627cf69d71a5b350ad3163f Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=ccf15cf2dc92d11f92ee30c97e2d86b07f81e030 Log: Optimize strtr w/ 2nd arg array Fixes bug #63893: poor efficiency of strtr() using array with keys of very different length. The implementation is basically all new, which carries some risk with it. The algorithm is described in "A Fast Algorithm For Multi-Pattern Searching" (1994) by Sun Wu and Udi Manber. Bugs: https://bugs.php.net/63893 Changed paths: M ext/standard/string.c diff --git a/ext/standard/string.c b/ext/standard/string.c index 29115fe..dc92e8e 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -22,7 +22,9 @@ /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */ +#define _GNU_SOURCE 1 #include +#include #include "php.h" #include "php_rand.h" #include "php_string.h" @@ -57,6 +59,7 @@ #include "php_globals.h" #include "basic_functions.h" #include "php_smart_str.h" +#include #ifdef ZTS #include "TSRM.h" #endif @@ -2772,112 +2775,288 @@ PHPAPI char *php_strtr(char *str, int len, char *str_from, char *str_to, int trl } /* }}} */ -/* {{{ php_strtr_array - */ -static void php_strtr_array(zval *return_value, char *str, int slen, HashTable *hash) +/* {{{ Definitions for php_strtr_array */ +typedef size_t STRLEN; /* STRLEN should be unsigned */ +typedef uint16_t HASH; +typedef struct { + HASHtable_mask; + STRLEN entries[1]; +} SHIFT_TAB; +typedef struct { + HASHtable_mask; + int entries[1]; +} HASH_TAB; +typedef struct { + const char *s; + STRLEN l; +} STR; +typedef struct _match_node MATCH_NODE; +struct _match_node { + STRLEN pos; + MATCH_NODE *next; +}; +typedef struct _pat_and_repl { + STR pat; + STR repl; +} PATNREPL; + +#define S(a) ((a)->s) +#define L(a) ((a)->l) + +#define SHIFT_TAB_BITS 13 +#define HASH_TAB_BITS 10 /* should be less than sizeof(HASH) * 8 */ +#define SHIFT_TAB_SIZE (1U << SHIFT_TAB_BITS) +#define HASH_TAB_SIZE (1U << HASH_TAB_BITS) + +typedef struct { + int B; /* size of suffixes */ + int Bp; /* size of prefixes */ + STRLEN m; /* minimum pattern length */ + int patnum; /* number of patterns */ + SHIFT_TAB *shift; /* table mapping hash to allowed shift */ + HASH_TAB*hash; /* table mapping hash to int (pair of pointers) */ + HASH*prefix;/* array of hashes of prefixes by pattern suffix hash order */ + PATNREPL*patterns; /* array of prefixes by pattern suffix hash order */ +} PPRES; +/* }}} */ + +/* {{{ php_strtr_hash */ +static inline HASH php_strtr_hash(const char *str, int len) { - zval **entry; - char *string_key; - uint string_key_len; - zval **trans; - zval ctmp; - ulong num_key; - int minlen = 128*1024; - int maxlen = 0, pos, len, found; - char *key; - HashPosition hpos; - smart_str result = {0}; - HashTable tmp_hash; - - zend_hash_init(&tmp_hash, zend_hash_num_elements(hash), NULL, NULL, 0); - zend_hash_internal_pointer_reset_ex(hash, &hpos); - while (zend_hash_get_current_data_ex(hash, (void **)&entry, &hpos) == SUCCESS) { - switch (zend_hash_get_current_key_ex(hash, &string_key, &string_key_len, &num_key, 0, &hpos)) { - case HASH_KEY_IS_STRING: - len = string_key_len-1; - if (len < 1) { - zend_hash_destroy(&tmp_hash); - RETURN_FALSE; - } - zend_hash_add(&tmp_hash, string_key, string_key_len, entry, sizeof(zval*), NULL); - if (len > maxlen) { - maxlen = len; - } - if (len < minlen) { - minlen = len; - } - break; + HASHres = 0; + int i; + for (i = 0; i < len; i++) { + res = (res << 5) + res + (unsigned char)str[i]; + } - case HASH_KEY_IS_LONG: - Z_TYPE(ctmp) = IS_LONG; -
[PHP-CVS] com php-src: Refactoring, bugs & leaks: ext/standard/string.c
Commit:2111ee3df54e890c9e2f14b09c01d68445389540 Author:Gustavo Lopes Wed, 9 Jan 2013 00:33:14 +0100 Committer: Gustavo Lopes Mon, 14 Jan 2013 12:22:41 +0100 Parents: ccf15cf2dc92d11f92ee30c97e2d86b07f81e030 Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=2111ee3df54e890c9e2f14b09c01d68445389540 Log: Refactoring, bugs & leaks Changed paths: M ext/standard/string.c Diff: diff --git a/ext/standard/string.c b/ext/standard/string.c index dc92e8e..827f9de 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2863,7 +2863,91 @@ static int php_strtr_compare_hash_suffix(const void *a, const void *b, void *ctx hash_b = php_strtr_hash(&S(&pnr_b->pat)[res->m - res->B], res->B) & res->hash->table_mask; /* TODO: don't recalculate the hashes all the time */ - return hash_a - hash_b; + if (hash_a > hash_b) { + return 1; + } else if (hash_a < hash_b) { + return -1; + } else { + /* longer patterns must be sorted first */ + if (L(&pnr_a->pat) > L(&pnr_b->pat)) { + return -1; + } else if (L(&pnr_a->pat) < L(&pnr_b->pat)) { + return 1; + } else { + return 0; + } + } +} +/* }}} */ +/* {{{ php_strtr_free_strp */ +static void php_strtr_free_strp(void *strp) +{ + STR_FREE(*(char**)strp); +} +/* }}} */ +/* {{{ php_strtr_array_prepare_repls */ +static PATNREPL *php_strtr_array_prepare_repls(int slen, HashTable *pats, zend_llist **allocs, int *outsize) +{ + PATNREPL*patterns; + HashPositionhpos; + zval**entry; + int num_pats = zend_hash_num_elements(pats), + i; + + patterns = safe_emalloc(num_pats, sizeof(*patterns), 0); + *allocs = emalloc(sizeof **allocs); + zend_llist_init(*allocs, sizeof(void*), &php_strtr_free_strp, 0); + + for (i = 0, zend_hash_internal_pointer_reset_ex(pats, &hpos); + zend_hash_get_current_data_ex(pats, (void **)&entry, &hpos) == SUCCESS; + zend_hash_move_forward_ex(pats, &hpos)) { + char*string_key; + uintstring_key_len; + ulong num_key; + zval*tzv = NULL; + + switch (zend_hash_get_current_key_ex(pats, &string_key, &string_key_len, &num_key, 0, &hpos)) { + case HASH_KEY_IS_LONG: + string_key_len = 1 + zend_spprintf(&string_key, 0, "%ld", (long)num_key); + zend_llist_add_element(*allocs, &string_key); + /* break missing intentionally */ + + case HASH_KEY_IS_STRING: + string_key_len--; /* exclude final '\0' */ + if (string_key_len == 0) { /* empty string given as pattern */ + efree(patterns); + zend_llist_destroy(*allocs); + efree(*allocs); + *allocs = NULL; + return NULL; + } + if (string_key_len > slen) { /* this pattern can never match */ + continue; + } + + if (Z_TYPE_PP(entry) != IS_STRING) { + tzv = *entry; + zval_addref_p(tzv); + SEPARATE_ZVAL(&tzv); + convert_to_string(tzv); + entry = &tzv; + zend_llist_add_element(*allocs, &Z_STRVAL_PP(entry)); + } + + S(&patterns[i].pat) = string_key; + L(&patterns[i].pat) = string_key_len; + S(&patterns[i].repl) = Z_STRVAL_PP(entry); + L(&patterns[i].repl) = Z_STRLEN_PP(entry); + i++; + + if (tzv) { + efree(tzv); + } + } + } + + *outsize = i; + return patterns; } /* }}} */ @@ -2952,7 +3036,7 @@ static void php_strtr_array_do_repl(STR *text, PPRES *d, zval *return_value) STRLEN shift = d->shift->entries[h]; if (shift > 0) { - smart_str_appendl(&result, &S(text)[pos], shift); + smart_str_appendl(&result, &S(text)[pos], MIN(shift, L(text) - pos)); pos += shift; } else { HASHh2 = h & d->hash->ta
[PHP-CVS] com php-src: strtr() with 2nd param array - optimization: ext/standard/string.c
Commit:cddbb98ada6bdba1596ea82386401edf9b680d47 Author:Gustavo Lopes Wed, 9 Jan 2013 22:29:28 +0100 Committer: Gustavo Lopes Mon, 14 Jan 2013 12:22:42 +0100 Parents: 2111ee3df54e890c9e2f14b09c01d68445389540 Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=cddbb98ada6bdba1596ea82386401edf9b680d47 Log: strtr() with 2nd param array - optimization About a 1.25x speedup in my test script by writing the result string only when a match is found and at the end instead of on each iteration. Changed paths: M ext/standard/string.c Diff: diff --git a/ext/standard/string.c b/ext/standard/string.c index 827f9de..4947a67 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -3028,6 +3028,7 @@ static void php_strtr_array_destroy_ppres(PPRES *d) static void php_strtr_array_do_repl(STR *text, PPRES *d, zval *return_value) { STRLEN pos = 0, + nextwpos = 0, lastpos = L(text) - d->m; smart_str result = {0}; @@ -3036,7 +3037,6 @@ static void php_strtr_array_do_repl(STR *text, PPRES *d, zval *return_value) STRLEN shift = d->shift->entries[h]; if (shift > 0) { - smart_str_appendl(&result, &S(text)[pos], MIN(shift, L(text) - pos)); pos += shift; } else { HASHh2 = h & d->hash->table_mask, @@ -3056,20 +3056,19 @@ static void php_strtr_array_do_repl(STR *text, PPRES *d, zval *return_value) memcmp(S(&pnr->pat), &S(text)[pos], L(&pnr->pat)) != 0) continue; - smart_str_appendl(&result, S(&pnr->repl), (int)L(&pnr->repl)); + smart_str_appendl(&result, &S(text)[nextwpos], pos - nextwpos); + smart_str_appendl(&result, S(&pnr->repl), L(&pnr->repl)); pos += L(&pnr->pat); + nextwpos = pos; goto end_outer_loop; } - smart_str_appendc(&result, S(text)[pos]); pos++; end_outer_loop: ; } } - if (pos < L(text)) { - smart_str_appendl(&result, &S(text)[pos], (int)(L(text) - pos)); - } + smart_str_appendl(&result, &S(text)[nextwpos], L(text) - nextwpos); if (result.c != NULL) { smart_str_0(&result); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: The compiler can figure this out: ext/standard/string.c
Commit:e5029ac40bd84fd3545538afa013051e161d86a4 Author:Gustavo Lopes Wed, 9 Jan 2013 23:20:32 +0100 Committer: Gustavo Lopes Mon, 14 Jan 2013 12:22:42 +0100 Parents: 93d1171c47d10158e6e9855236277deb09cf7e6b Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e5029ac40bd84fd3545538afa013051e161d86a4 Log: The compiler can figure this out Changed paths: M ext/standard/string.c Diff: diff --git a/ext/standard/string.c b/ext/standard/string.c index 14259ca..c7ed884 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2821,7 +2821,7 @@ static inline HASH php_strtr_hash(const char *str, int len) HASHres = 0; int i; for (i = 0; i < len; i++) { - res = (res << 5) + res + (unsigned char)str[i]; + res = res * 33 + (unsigned char)str[i]; } return res; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Remove unused block: ext/standard/string.c
Commit:93d1171c47d10158e6e9855236277deb09cf7e6b Author:Gustavo Lopes Wed, 9 Jan 2013 23:20:11 +0100 Committer: Gustavo Lopes Mon, 14 Jan 2013 12:22:42 +0100 Parents: cddbb98ada6bdba1596ea82386401edf9b680d47 Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=93d1171c47d10158e6e9855236277deb09cf7e6b Log: Remove unused block Changed paths: M ext/standard/string.c Diff: diff --git a/ext/standard/string.c b/ext/standard/string.c index 4947a67..14259ca 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2790,11 +2790,6 @@ typedef struct { const char *s; STRLEN l; } STR; -typedef struct _match_node MATCH_NODE; -struct _match_node { - STRLEN pos; - MATCH_NODE *next; -}; typedef struct _pat_and_repl { STR pat; STR repl; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Fixed inconsequential bug in strtr(): ext/standard/string.c
Commit:930ef9ddd663dcda5726b5d33c54c49a2f4f97d6 Author:Gustavo Lopes Tue, 15 Jan 2013 17:25:59 +0100 Parents: d7bac4f5ba17c6fba00943a8bada49a4735a15a6 Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=930ef9ddd663dcda5726b5d33c54c49a2f4f97d6 Log: Fixed inconsequential bug in strtr() Changed paths: M ext/standard/string.c Diff: diff --git a/ext/standard/string.c b/ext/standard/string.c index 953dfd1..58b5483 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -3021,7 +3021,7 @@ static PPRES *php_strtr_array_prepare(STR *text, PATNREPL *patterns, int patnum, res->shift->table_mask = SHIFT_TAB_SIZE - 1; php_strtr_populate_shift(patterns, patnum, B, res->m, res->shift); - res->hash = safe_emalloc(HASH_TAB_SIZE, sizeof(*res->hash->entries), sizeof(*res->shift)); + res->hash = safe_emalloc(HASH_TAB_SIZE, sizeof(*res->hash->entries), sizeof(*res->hash)); res->hash->table_mask = HASH_TAB_SIZE - 1; res->patterns = safe_emalloc(patnum, sizeof(*res->patterns), 0); @@ -3051,7 +3051,7 @@ static PPRES *php_strtr_array_prepare(STR *text, PATNREPL *patterns, int patnum, } } } - res->hash->entries[HASH_TAB_SIZE] = patnum; + res->hash->entries[HASH_TAB_SIZE] = patnum; /* OK, we effectively allocated SIZE+1 */ for (i = HASH_TAB_SIZE - 1; i >= 0; i--) { if (res->hash->entries[i] == -1) { res->hash->entries[i] = res->hash->entries[i + 1]; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: NEWS for bug #63893: NEWS
Commit:4c38003dbdbb5b66c9d61db4cfd3248d15c93729 Author:Gustavo Lopes Mon, 14 Jan 2013 17:17:58 +0100 Committer: Gustavo Lopes Tue, 15 Jan 2013 21:07:21 +0100 Parents: 93e35137aaba98c0a000ed442320e3173bb0a3f2 Branches: PHP-5.4 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=4c38003dbdbb5b66c9d61db4cfd3248d15c93729 Log: NEWS for bug #63893 Bugs: https://bugs.php.net/63893 Changed paths: M NEWS Diff: diff --git a/NEWS b/NEWS index 8201ce1..bcff155 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,8 @@ PHP NEWS . Fixed bug #63943 (Bad warning text from strpos() on empty needle). (Laruence) . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) + . Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very +different length). (Gustavo) . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry) . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: revert change. now it doesn't compile again...someone should fix ext/date...: ext/date/php_date.c
Commit:5cfa916aad14df889e9119161e359b57a4d9886e Author:Andrey Hristov Tue, 15 Jan 2013 12:20:58 +0100 Parents: acc24d1f9eb1f5dddc89123baca14e70be84be20 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=5cfa916aad14df889e9119161e359b57a4d9886e Log: revert change. now it doesn't compile again...someone should fix ext/date... Changed paths: M ext/date/php_date.c Diff: diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 1e1e239..cc83130 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2071,7 +2071,7 @@ static zval* date_clone_immutable(zval *object) zval *new_object; ALLOC_ZVAL(new_object); -// Z_OBJVAL_P(new_object) = date_object_clone_date(object); + Z_OBJVAL_P(new_object) = date_object_clone_date(object); Z_SET_REFCOUNT_P(new_object, 1); Z_SET_ISREF_P(new_object); Z_TYPE_P(new_object) = IS_OBJECT; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Use two dtors thus allow allocation based on the alloc model of the connection.: ext/date/php_date.c ext/mysqlnd/mysqlnd.c
Commit:acc24d1f9eb1f5dddc89123baca14e70be84be20 Author:Andrey Hristov Tue, 15 Jan 2013 12:19:52 +0100 Parents: d377a266b27e0d0b2ac088333564f8d1f05cceb8 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=acc24d1f9eb1f5dddc89123baca14e70be84be20 Log: Use two dtors thus allow allocation based on the alloc model of the connection. Changed paths: M ext/date/php_date.c M ext/mysqlnd/mysqlnd.c Diff: diff --git a/ext/date/php_date.c b/ext/date/php_date.c index cc83130..1e1e239 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2071,7 +2071,7 @@ static zval* date_clone_immutable(zval *object) zval *new_object; ALLOC_ZVAL(new_object); - Z_OBJVAL_P(new_object) = date_object_clone_date(object); +// Z_OBJVAL_P(new_object) = date_object_clone_date(object); Z_SET_REFCOUNT_P(new_object, 1); Z_SET_ISREF_P(new_object); Z_TYPE_P(new_object) = IS_OBJECT; diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c index f5b1063..96c420d 100644 --- a/ext/mysqlnd/mysqlnd.c +++ b/ext/mysqlnd/mysqlnd.c @@ -2418,14 +2418,28 @@ end: /* }}} */ -/* {{{ connect_attr_item_dtor */ +/* {{{ connect_attr_item_edtor */ static void -connect_attr_item_dtor(void * pDest) +connect_attr_item_edtor(void * pDest) { #ifdef ZTS TSRMLS_FETCH(); #endif - DBG_ENTER("connect_attr_item_dtor"); + DBG_ENTER("connect_attr_item_edtor"); + mnd_efree(*(char **) pDest); + DBG_VOID_RETURN; +} +/* }}} */ + + +/* {{{ connect_attr_item_pdtor */ +static void +connect_attr_item_pdtor(void * pDest) +{ +#ifdef ZTS + TSRMLS_FETCH(); +#endif + DBG_ENTER("connect_attr_item_pdtor"); mnd_pefree(*(char **) pDest, 1); DBG_VOID_RETURN; } @@ -2456,11 +2470,11 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * cons if (!conn->options->connect_attr) { goto oom; } - zend_hash_init(conn->options->connect_attr, 0, NULL, connect_attr_item_dtor, conn->persistent); + zend_hash_init(conn->options->connect_attr, 0, NULL, conn->persistent? connect_attr_item_pdtor:connect_attr_item_edtor, conn->persistent); } DBG_INF_FMT("Adding [%s][%s]", key, value); { - const char * copyv = mnd_pestrdup(value, 1); + const char * copyv = mnd_pestrdup(value, conn->persistent); if (!copyv) { goto oom; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: plug a leak - forgot ot use the dtor already written: ext/mysqlnd/mysqlnd.c
Commit:d377a266b27e0d0b2ac088333564f8d1f05cceb8 Author:Andrey Hristov Tue, 15 Jan 2013 11:32:44 +0100 Parents: 5718568830ebea6684f3093a5681eb0d44d6d417 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d377a266b27e0d0b2ac088333564f8d1f05cceb8 Log: plug a leak - forgot ot use the dtor already written Changed paths: M ext/mysqlnd/mysqlnd.c Diff: diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c index 1023b3e..f5b1063 100644 --- a/ext/mysqlnd/mysqlnd.c +++ b/ext/mysqlnd/mysqlnd.c @@ -1103,6 +1103,7 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * conn_handle, } /* }}} */ + /* {{{ mysqlnd_connect */ PHPAPI MYSQLND * mysqlnd_connect(MYSQLND * conn_handle, const char * host, const char * user, @@ -2455,7 +2456,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * cons if (!conn->options->connect_attr) { goto oom; } - zend_hash_init(conn->options->connect_attr, 0, NULL, NULL, conn->persistent); + zend_hash_init(conn->options->connect_attr, 0, NULL, connect_attr_item_dtor, conn->persistent); } DBG_INF_FMT("Adding [%s][%s]", key, value); { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: ext/standard/file.c
Commit:22ba2b95ce840fb0cc29acac9a1f6240a17c0c08 Author:Andrey Hristov Tue, 15 Jan 2013 11:06:59 +0100 Parents: dc495bbe95680a9cf2321da83a382d834d70758c 83864b470b030a7d1bd0a1b46d3be75ce301304c Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=22ba2b95ce840fb0cc29acac9a1f6240a17c0c08 Log: Merge branch 'PHP-5.4' into PHP-5.5 Conflicts: NEWS Changed paths: MM ext/standard/file.c Diff: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Merge branch 'PHP-5.3' into PHP-5.4: NEWS ext/standard/file.c
Commit:b1bf524140f3825d161c6e8f922b696d91b93969 Author:Adam Harvey Tue, 15 Jan 2013 17:35:34 +0800 Parents: 374ebc87416d9e31efd961a3176510e3a901355b c077074c1379b5faed386106fdbb53f5d17fd6e7 Branches: PHP-5.4 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=b1bf524140f3825d161c6e8f922b696d91b93969 Log: Merge branch 'PHP-5.3' into PHP-5.4 * PHP-5.3: Revert "Update fputcsv() to escape all characters equally." Changed paths: MM NEWS MM ext/standard/file.c Diff: diff --cc NEWS index 5f45667,e78af23..8201ce1 --- a/NEWS +++ b/NEWS @@@ -1,58 -1,17 +1,56 @@@ PHP NEWS ||| -?? ??? 2013, PHP 5.3.23 +?? ??? 2012, PHP 5.4.12 -?? ??? 2013, PHP 5.3.22 - -- Zend Engine: +- Core: + . Fixed bug #63982 (isset() inconsistently produces a fatal error on +protected property). (Stas) + . Fixed bug #63943 (Bad warning text from strpos() on empty needle). +(Laruence) . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) + . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry) - . Fixed bug #43225 (fputcsv incorrectly handles cells ending in \ followed - by "). (Adam) + . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars) + +- Date: + . Fixed bug #63699 (Performance improvements for various ext/date functions). +(Lars, original patch by njaguar at gmail dot com) + . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. +(Derick) + +- Litespeed: + . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George) + +- ext/sqlite3: + . Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't +using sqlite3_*_int64 API). (srgoogleguy, Lars) + +- PDO_sqlite: + . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even +on 64bit builds in pdo_sqlite). (srgoogleguy, Lars) + . Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence) + . Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long +testsuite). (hswong3i, Lars) + +?? ??? 2012, PHP 5.4.11 + +- Core: . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). (Johannes) + . Fixed bug #43177 (Errors in eval()'ed code produce status code 500). +(Todd Ruth, Stas). -- Core - . Fixed bug #63943 (Bad warning text from strpos() on empty needle). -(Laruence) +- Filter: + . Fixed bug #63757 (getenv() produces memory leak with CGI SAPI). (Dmitry) + . Fixed bug #54096 (FILTER_VALIDATE_INT does not accept +0 and -0). +(martin at divbyzero dot net, Lars) + +- JSON: + . Fixed bug #63737 (json_decode does not properly decode with options +parameter). (Adam) + +- CLI server + . Update list of common mime types. Added webm, ogv, ogg. (Lars, +pascalc at gmail dot com) - cURL extension: . Fixed bug (segfault due to libcurl connection caching). (Pierrick) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Revert "Update fputcsv() to escape all characters equally.": NEWS ext/standard/file.c ext/standard/tests/file/fputcsv.phpt ext/standard/tests/file/fputcsv_bug43225.phpt
Commit:c077074c1379b5faed386106fdbb53f5d17fd6e7 Author:Adam Harvey Tue, 15 Jan 2013 17:33:54 +0800 Parents: 9b5cb0e8059b1e8bec096067491ed8d75f878938 Branches: PHP-5.3 PHP-5.4 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c077074c1379b5faed386106fdbb53f5d17fd6e7 Log: Revert "Update fputcsv() to escape all characters equally." On second thoughts, while the behaviour _is_ broken, this isn't the right fix. This reverts commit 9b5cb0e8059b1e8bec096067491ed8d75f878938. Changed paths: M NEWS M ext/standard/file.c M ext/standard/tests/file/fputcsv.phpt D ext/standard/tests/file/fputcsv_bug43225.phpt Diff: diff --git a/NEWS b/NEWS index a7c2fa4..e78af23 100644 --- a/NEWS +++ b/NEWS @@ -12,8 +12,6 @@ PHP NEWS - Core . Fixed bug #63943 (Bad warning text from strpos() on empty needle). (Laruence) - . Fixed bug #43225 (fputcsv incorrectly handles cells ending in \ followed -by "). (Adam) - cURL extension: . Fixed bug (segfault due to libcurl connection caching). (Pierrick) diff --git a/ext/standard/file.c b/ext/standard/file.c index fa85bf1..8b18155 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -1953,6 +1953,7 @@ PHP_FUNCTION(fputcsv) { char delimiter = ','; /* allow this to be set as parameter */ char enclosure = '"'; /* allow this to be set as parameter */ + const char escape_char = '\\'; php_stream *stream; int ret; zval *fp = NULL, *fields = NULL, **field_tmp = NULL, field; @@ -2007,19 +2008,24 @@ PHP_FUNCTION(fputcsv) /* enclose a field that contains a delimiter, an enclosure character, or a newline */ if (FPUTCSV_FLD_CHK(delimiter) || FPUTCSV_FLD_CHK(enclosure) || + FPUTCSV_FLD_CHK(escape_char) || FPUTCSV_FLD_CHK('\n') || FPUTCSV_FLD_CHK('\r') || FPUTCSV_FLD_CHK('\t') || - FPUTCSV_FLD_CHK('\\') || FPUTCSV_FLD_CHK(' ') ) { char *ch = Z_STRVAL(field); char *end = ch + Z_STRLEN(field); + int escaped = 0; smart_str_appendc(&csvline, enclosure); while (ch < end) { - if (*ch == enclosure) { + if (*ch == escape_char) { + escaped = 1; + } else if (!escaped && *ch == enclosure) { smart_str_appendc(&csvline, enclosure); + } else { + escaped = 0; } smart_str_appendc(&csvline, *ch); ch++; diff --git a/ext/standard/tests/file/fputcsv.phpt b/ext/standard/tests/file/fputcsv.phpt index d71f777..63c4150 100644 --- a/ext/standard/tests/file/fputcsv.phpt +++ b/ext/standard/tests/file/fputcsv.phpt @@ -44,7 +44,7 @@ echo '$list = ';var_export($res);echo ";\n"; $fp = fopen($file, "r"); $res = array(); -while($l=fgetcsv($fp, 0, ',', '"', '"')) +while($l=fgetcsv($fp)) { $res[] = join(',',$l); } @@ -75,10 +75,10 @@ $list = array ( 13 => 'aaa,"""bbb """', 14 => '"aaa""aaa""","""bbb""bbb"', 15 => '"aaa""aaa""",bbb', - 16 => 'aaa,"""\\""bbb",ccc', - 17 => '"aaa""\\""a""","""bbb"""', - 18 => '"""\\","""aaa"""', - 19 => '"""\\""",aaa', + 16 => 'aaa,"""\\"bbb",ccc', + 17 => '"aaa""\\"a""","""bbb"""', + 18 => '"""\\,"""aaa"""', + 19 => '"""\\"",aaa', ); $list = array ( 0 => 'aaa,bbb', diff --git a/ext/standard/tests/file/fputcsv_bug43225.phpt b/ext/standard/tests/file/fputcsv_bug43225.phpt deleted file mode 100644 index 1de3b5f..000 --- a/ext/standard/tests/file/fputcsv_bug43225.phpt +++ /dev/null @@ -1,20 +0,0 @@ ---TEST-- -fputcsv(): bug #43225 (fputcsv incorrectly handles cells ending in \ followed by ") ---FILE-- - ---EXPECT-- -"a\""",bbb -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Revert "Update fputcsv() to escape all characters equally.": ext/standard/file.c ext/standard/tests/file/fputcsv.phpt ext/standard/tests/file/fputcsv_bug43225.phpt
Commit:cab290d2adbd616a18b9efaace6abe629f827190 Author:Adam Harvey Tue, 15 Jan 2013 17:33:54 +0800 Parents: dc495bbe95680a9cf2321da83a382d834d70758c Branches: PHP-5.5 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=cab290d2adbd616a18b9efaace6abe629f827190 Log: Revert "Update fputcsv() to escape all characters equally." On second thoughts, while the behaviour _is_ broken, this isn't the right fix. This reverts commit 9b5cb0e8059b1e8bec096067491ed8d75f878938. Changed paths: M ext/standard/file.c M ext/standard/tests/file/fputcsv.phpt D ext/standard/tests/file/fputcsv_bug43225.phpt Diff: diff --git a/ext/standard/file.c b/ext/standard/file.c index 574fb53..74577ac 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -1871,16 +1871,20 @@ PHPAPI int php_fputcsv(php_stream *stream, zval *fields, char delimiter, char en FPUTCSV_FLD_CHK('\n') || FPUTCSV_FLD_CHK('\r') || FPUTCSV_FLD_CHK('\t') || - FPUTCSV_FLD_CHK('\\') || FPUTCSV_FLD_CHK(' ') ) { char *ch = Z_STRVAL(field); char *end = ch + Z_STRLEN(field); + int escaped = 0; smart_str_appendc(&csvline, enclosure); while (ch < end) { - if (*ch == enclosure) { + if (*ch == escape_char) { + escaped = 1; + } else if (!escaped && *ch == enclosure) { smart_str_appendc(&csvline, enclosure); + } else { + escaped = 0; } smart_str_appendc(&csvline, *ch); ch++; diff --git a/ext/standard/tests/file/fputcsv.phpt b/ext/standard/tests/file/fputcsv.phpt index d71f777..63c4150 100644 --- a/ext/standard/tests/file/fputcsv.phpt +++ b/ext/standard/tests/file/fputcsv.phpt @@ -44,7 +44,7 @@ echo '$list = ';var_export($res);echo ";\n"; $fp = fopen($file, "r"); $res = array(); -while($l=fgetcsv($fp, 0, ',', '"', '"')) +while($l=fgetcsv($fp)) { $res[] = join(',',$l); } @@ -75,10 +75,10 @@ $list = array ( 13 => 'aaa,"""bbb """', 14 => '"aaa""aaa""","""bbb""bbb"', 15 => '"aaa""aaa""",bbb', - 16 => 'aaa,"""\\""bbb",ccc', - 17 => '"aaa""\\""a""","""bbb"""', - 18 => '"""\\","""aaa"""', - 19 => '"""\\""",aaa', + 16 => 'aaa,"""\\"bbb",ccc', + 17 => '"aaa""\\"a""","""bbb"""', + 18 => '"""\\,"""aaa"""', + 19 => '"""\\"",aaa', ); $list = array ( 0 => 'aaa,bbb', diff --git a/ext/standard/tests/file/fputcsv_bug43225.phpt b/ext/standard/tests/file/fputcsv_bug43225.phpt deleted file mode 100644 index 1de3b5f..000 --- a/ext/standard/tests/file/fputcsv_bug43225.phpt +++ /dev/null @@ -1,20 +0,0 @@ ---TEST-- -fputcsv(): bug #43225 (fputcsv incorrectly handles cells ending in \ followed by ") ---FILE-- - ---EXPECT-- -"a\""",bbb -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Revert "Update fputcsv() to escape all characters equally.": ext/standard/file.c ext/standard/tests/file/fputcsv.phpt ext/standard/tests/file/fputcsv_bug43225.phpt
Commit:232cf4a640f00932e8030b0d57541a8d5c286309 Author:Adam Harvey Tue, 15 Jan 2013 17:33:54 +0800 Parents: c77fe090ea8dcbf0ceab924c748182ea472ef32d Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=232cf4a640f00932e8030b0d57541a8d5c286309 Log: Revert "Update fputcsv() to escape all characters equally." On second thoughts, while the behaviour _is_ broken, this isn't the right fix. This reverts commit 9b5cb0e8059b1e8bec096067491ed8d75f878938. Changed paths: M ext/standard/file.c M ext/standard/tests/file/fputcsv.phpt D ext/standard/tests/file/fputcsv_bug43225.phpt Diff: diff --git a/ext/standard/file.c b/ext/standard/file.c index 574fb53..74577ac 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -1871,16 +1871,20 @@ PHPAPI int php_fputcsv(php_stream *stream, zval *fields, char delimiter, char en FPUTCSV_FLD_CHK('\n') || FPUTCSV_FLD_CHK('\r') || FPUTCSV_FLD_CHK('\t') || - FPUTCSV_FLD_CHK('\\') || FPUTCSV_FLD_CHK(' ') ) { char *ch = Z_STRVAL(field); char *end = ch + Z_STRLEN(field); + int escaped = 0; smart_str_appendc(&csvline, enclosure); while (ch < end) { - if (*ch == enclosure) { + if (*ch == escape_char) { + escaped = 1; + } else if (!escaped && *ch == enclosure) { smart_str_appendc(&csvline, enclosure); + } else { + escaped = 0; } smart_str_appendc(&csvline, *ch); ch++; diff --git a/ext/standard/tests/file/fputcsv.phpt b/ext/standard/tests/file/fputcsv.phpt index d71f777..63c4150 100644 --- a/ext/standard/tests/file/fputcsv.phpt +++ b/ext/standard/tests/file/fputcsv.phpt @@ -44,7 +44,7 @@ echo '$list = ';var_export($res);echo ";\n"; $fp = fopen($file, "r"); $res = array(); -while($l=fgetcsv($fp, 0, ',', '"', '"')) +while($l=fgetcsv($fp)) { $res[] = join(',',$l); } @@ -75,10 +75,10 @@ $list = array ( 13 => 'aaa,"""bbb """', 14 => '"aaa""aaa""","""bbb""bbb"', 15 => '"aaa""aaa""",bbb', - 16 => 'aaa,"""\\""bbb",ccc', - 17 => '"aaa""\\""a""","""bbb"""', - 18 => '"""\\","""aaa"""', - 19 => '"""\\""",aaa', + 16 => 'aaa,"""\\"bbb",ccc', + 17 => '"aaa""\\"a""","""bbb"""', + 18 => '"""\\,"""aaa"""', + 19 => '"""\\"",aaa', ); $list = array ( 0 => 'aaa,bbb', diff --git a/ext/standard/tests/file/fputcsv_bug43225.phpt b/ext/standard/tests/file/fputcsv_bug43225.phpt deleted file mode 100644 index 1de3b5f..000 --- a/ext/standard/tests/file/fputcsv_bug43225.phpt +++ /dev/null @@ -1,20 +0,0 @@ ---TEST-- -fputcsv(): bug #43225 (fputcsv incorrectly handles cells ending in \ followed by ") ---FILE-- - ---EXPECT-- -"a\""",bbb -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa.": ext/spl/tests/SplFileObject_fputcsv.phpt
Commit:40c1122dcc8d74b063d5b6f06d5ce52ff7b3dcc3 Author:Adam Harvey Tue, 15 Jan 2013 17:37:21 +0800 Parents: 232cf4a640f00932e8030b0d57541a8d5c286309 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=40c1122dcc8d74b063d5b6f06d5ce52ff7b3dcc3 Log: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa." This reverts commit 0510701474e8d99b5b30139b5599e44f9b555a5a. Changed paths: M ext/spl/tests/SplFileObject_fputcsv.phpt Diff: diff --git a/ext/spl/tests/SplFileObject_fputcsv.phpt b/ext/spl/tests/SplFileObject_fputcsv.phpt index 601edab..66fdbfd 100644 --- a/ext/spl/tests/SplFileObject_fputcsv.phpt +++ b/ext/spl/tests/SplFileObject_fputcsv.phpt @@ -42,7 +42,7 @@ echo '$list = ';var_export($res);echo ";\n"; $fp = fopen($file, "r"); $res = array(); -while($l=fgetcsv($fp, 0, ',', '"', '"')) +while($l=fgetcsv($fp)) { $res[] = join(',',$l); } @@ -76,10 +76,10 @@ $list = array ( 13 => 'aaa,"""bbb """', 14 => '"aaa""aaa""","""bbb""bbb"', 15 => '"aaa""aaa""",bbb', - 16 => 'aaa,"""\\""bbb",ccc', - 17 => '"aaa""\\""a""","""bbb"""', - 18 => '"""\\","""aaa"""', - 19 => '"""\\""",aaa', + 16 => 'aaa,"""\\"bbb",ccc', + 17 => '"aaa""\\"a""","""bbb"""', + 18 => '"""\\,"""aaa"""', + 19 => '"""\\"",aaa', ); $list = array ( 0 => 'aaa,bbb', -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa.": ext/spl/tests/SplFileObject_fputcsv.phpt
Commit:ef86530a561ad3d6374b81909d6dd336159fb465 Author:Adam Harvey Tue, 15 Jan 2013 17:37:21 +0800 Parents: cab290d2adbd616a18b9efaace6abe629f827190 Branches: PHP-5.5 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=ef86530a561ad3d6374b81909d6dd336159fb465 Log: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa." This reverts commit 0510701474e8d99b5b30139b5599e44f9b555a5a. Changed paths: M ext/spl/tests/SplFileObject_fputcsv.phpt Diff: diff --git a/ext/spl/tests/SplFileObject_fputcsv.phpt b/ext/spl/tests/SplFileObject_fputcsv.phpt index 601edab..66fdbfd 100644 --- a/ext/spl/tests/SplFileObject_fputcsv.phpt +++ b/ext/spl/tests/SplFileObject_fputcsv.phpt @@ -42,7 +42,7 @@ echo '$list = ';var_export($res);echo ";\n"; $fp = fopen($file, "r"); $res = array(); -while($l=fgetcsv($fp, 0, ',', '"', '"')) +while($l=fgetcsv($fp)) { $res[] = join(',',$l); } @@ -76,10 +76,10 @@ $list = array ( 13 => 'aaa,"""bbb """', 14 => '"aaa""aaa""","""bbb""bbb"', 15 => '"aaa""aaa""",bbb', - 16 => 'aaa,"""\\""bbb",ccc', - 17 => '"aaa""\\""a""","""bbb"""', - 18 => '"""\\","""aaa"""', - 19 => '"""\\""",aaa', + 16 => 'aaa,"""\\"bbb",ccc', + 17 => '"aaa""\\"a""","""bbb"""', + 18 => '"""\\,"""aaa"""', + 19 => '"""\\"",aaa', ); $list = array ( 0 => 'aaa,bbb', -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa.": ext/spl/tests/SplFileObject_fputcsv.phpt
Commit:83864b470b030a7d1bd0a1b46d3be75ce301304c Author:Adam Harvey Tue, 15 Jan 2013 17:37:21 +0800 Parents: b1bf524140f3825d161c6e8f922b696d91b93969 Branches: PHP-5.4 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=83864b470b030a7d1bd0a1b46d3be75ce301304c Log: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa." This reverts commit 0510701474e8d99b5b30139b5599e44f9b555a5a. Changed paths: M ext/spl/tests/SplFileObject_fputcsv.phpt Diff: diff --git a/ext/spl/tests/SplFileObject_fputcsv.phpt b/ext/spl/tests/SplFileObject_fputcsv.phpt index 601edab..66fdbfd 100644 --- a/ext/spl/tests/SplFileObject_fputcsv.phpt +++ b/ext/spl/tests/SplFileObject_fputcsv.phpt @@ -42,7 +42,7 @@ echo '$list = ';var_export($res);echo ";\n"; $fp = fopen($file, "r"); $res = array(); -while($l=fgetcsv($fp, 0, ',', '"', '"')) +while($l=fgetcsv($fp)) { $res[] = join(',',$l); } @@ -76,10 +76,10 @@ $list = array ( 13 => 'aaa,"""bbb """', 14 => '"aaa""aaa""","""bbb""bbb"', 15 => '"aaa""aaa""",bbb', - 16 => 'aaa,"""\\""bbb",ccc', - 17 => '"aaa""\\""a""","""bbb"""', - 18 => '"""\\","""aaa"""', - 19 => '"""\\""",aaa', + 16 => 'aaa,"""\\"bbb",ccc', + 17 => '"aaa""\\"a""","""bbb"""', + 18 => '"""\\,"""aaa"""', + 19 => '"""\\"",aaa', ); $list = array ( 0 => 'aaa,bbb', -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: Add support for connect attributes, as of MySQL 5.6: ext/mysqlnd/mysqlnd.c ext/mysqlnd/mysqlnd.h ext/mysqlnd/mysqlnd_auth.c ext/mysqlnd/mysqlnd_enum_n_def.h ext/mysqlnd/mysqlnd_
Commit:1ff43522630f0f98c20e884890f77e6593a43f3b Author:Andrey Hristov Tue, 15 Jan 2013 10:04:59 +0100 Parents: be07f815f240803fe7a48a5fb3d68a169bef4707 Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=1ff43522630f0f98c20e884890f77e6593a43f3b Log: Add support for connect attributes, as of MySQL 5.6 Changed paths: M ext/mysqlnd/mysqlnd.c M ext/mysqlnd/mysqlnd.h M ext/mysqlnd/mysqlnd_auth.c M ext/mysqlnd/mysqlnd_enum_n_def.h M ext/mysqlnd/mysqlnd_libmysql_compat.h M ext/mysqlnd/mysqlnd_structs.h M ext/mysqlnd/mysqlnd_wireprotocol.c M ext/mysqlnd/mysqlnd_wireprotocol.h diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c index ebc4a77..1023b3e 100644 --- a/ext/mysqlnd/mysqlnd.c +++ b/ext/mysqlnd/mysqlnd.c @@ -95,6 +95,11 @@ MYSQLND_METHOD(mysqlnd_conn_data, free_options)(MYSQLND_CONN_DATA * conn TSRMLS_ mnd_pefree(conn->options->cfg_section, pers); conn->options->cfg_section = NULL; } + if (conn->options->connect_attr) { + zend_hash_destroy(conn->options->connect_attr); + mnd_pefree(conn->options->connect_attr, pers); + conn->options->connect_attr = NULL; + } } /* }}} */ @@ -797,13 +802,14 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect_handshake)(MYSQLND_CONN_DATA * conn, goto err; } + conn->client_flag = mysql_flags; + conn->server_capabilities = greet_packet->server_capabilities; + if (FAIL == mysqlnd_connect_run_authentication(conn, user, passwd, db, db_len, (size_t) passwd_len, greet_packet, conn->options, mysql_flags TSRMLS_CC)) { goto err; } - conn->client_flag = mysql_flags; - conn->server_capabilities = greet_packet->server_capabilities; conn->upsert_status->warning_count = 0; conn->upsert_status->server_status = greet_packet->server_status; conn->upsert_status->affected_rows = 0; @@ -811,6 +817,8 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect_handshake)(MYSQLND_CONN_DATA * conn, PACKET_FREE(greet_packet); DBG_RETURN(PASS); err: + conn->client_flag = 0; + conn->server_capabilities = 0; PACKET_FREE(greet_packet); DBG_RETURN(FAIL); } @@ -1086,6 +1094,7 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * conn_handle, DBG_ENTER("mysqlnd_conn::connect"); if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) { + mysqlnd_options4(conn_handle, MYSQL_OPT_CONNECT_ATTR_ADD, "_client_name", "mysqlnd"); ret = conn->m->connect(conn, host, user, passwd, passwd_len, db, db_len, port, socket_or_pipe, mysql_flags TSRMLS_CC); conn->m->local_tx_end(conn, this_func, FAIL TSRMLS_CC); @@ -2375,6 +2384,19 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c conn->options->flags &= ~CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS; } break; + case MYSQL_OPT_CONNECT_ATTR_RESET: + if (conn->options->connect_attr) { + DBG_INF_FMT("Before reset %d attribute(s)", zend_hash_num_elements(conn->options->connect_attr)); + zend_hash_clean(conn->options->connect_attr); + } + break; + case MYSQL_OPT_CONNECT_ATTR_DELETE: + if (conn->options->connect_attr && value) { + DBG_INF_FMT("Before delete %d attribute(s)", zend_hash_num_elements(conn->options->connect_attr)); + zend_hash_del(conn->options->connect_attr, value, strlen(value)); + DBG_INF_FMT("%d left", zend_hash_num_elements(conn->options->connect_attr)); + } + break; #ifdef WHEN_SUPPORTED_BY_MYSQLI case MYSQL_SHARED_MEMORY_BASE_NAME: case MYSQL_OPT_USE_RESULT: @@ -2395,6 +2417,69 @@ end: /* }}} */ +/* {{{ connect_attr_item_dtor */ +static void +connect_attr_item_dtor(void * pDest) +{ +#ifdef ZTS + TSRMLS_FETCH(); +#endif + DBG_ENTER("connect_attr_item_dtor"); + mnd_pefree(*(char **) pDest, 1); + DBG_VOID_RETURN; +} +/* }}} */ + + +/* {{{ mysqlnd_conn_data::set_client_option_2d */ +static enum_func_status +MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * const conn, + enum mysqlnd_option option, + co
[PHP-CVS] com php-src: Merge branch 'PHP-5.5': NEWS
Commit:c4fe37bd8c5e35d1957d43acecbcb3f010501e4a Author:Andrey Hristov Tue, 15 Jan 2013 10:12:54 +0100 Parents: 7a316922536495560b080bc602f54c268537c67b dc495bbe95680a9cf2321da83a382d834d70758c Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c4fe37bd8c5e35d1957d43acecbcb3f010501e4a Log: Merge branch 'PHP-5.5' Conflicts: NEWS Changed paths: MM NEWS diff --cc NEWS index 7d36738,4145dc5..f753a83 --- a/NEWS +++ b/NEWS @@@ -1,6 -1,250 +1,5 @@@ PHP NEWS ||| - <<< HEAD -?? ??? 201?, PHP 5.5.0 Alpha 3 - -- Core: - . Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence) - -- General improvements: - . Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). (Pierrick) - . Fixed bug #63822 (Crash when using closures with ArrayAccess). -(Nikita Popov) - . Add Generator::throw() method. (Nikita Popov) - . Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, Lars) - . Bug #52126: timestamp for mail.log (Martin Jansen, Lars) - -- mysqlnd - . Fixed return value of mysqli_stmt_affected_rows() in the time after -prepare() and before execute(). (Andrey) - -- cURL: - . Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror -curl_pause, curl_reset, curl_share_close, curl_share_init, - curl_share_setopt curl_strerror and curl_unescape. (Pierrick) - . Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION, -CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE, - CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick) - -- DateTime - . Added DateTimeImmutable - a variant of DateTime that only returns the -modified state instead of changing itself. (Derick) - -- pgsql: - . Bug #46408: Locale number format settings can cause pg_query_params to -break with numerics. (asmecher, Lars) - -- dba: - . Bug #62489: dba_insert not working as expected. -(marc-bennewitz at arcor dot de, Lars) - -18 Dec 2012, PHP 5.5.0 Alpha 2 - -- General improvements: - . Added systemtap support by enabling systemtap compatible dtrace probes on -linux. (David Soria Parra) - . Added support for using empty() on the result of function calls and -other expressions (https://wiki.php.net/rfc/empty_isset_exprs). -(Nikita Popov) - . Optimized access to temporary and compiled VM variables. 8% less memory -reads. (Dmitry) - . The VM stacks for passing function arguments and syntaticaly nested calls -were merged into a single stack. The stack size needed for op_array -execution is calculated at compile time and preallocated at once. As result -all the stack push operatins don't require checks for stack overflow -any more. (Dmitry) - -- MySQL - . This extension is now deprecated, and deprecation warnings will be generated -when connections are established to databases via mysql_connect(), -mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL -instead (https://wiki.php.net/rfc/mysql_deprecation). (Adam) - -- Fileinfo: - . Fixed bug #63590 (Different results in TS and NTS under Windows). -(Anatoliy) - -- Apache2 Handler SAPI: - . Enabled Apache 2.4 configure option for Windows (Pierre, Anatoliy) - -13 Nov 2012, PHP 5.5.0 Alpha 1 - -- General improvements: - . Added generators and coroutines (https://wiki.php.net/rfc/generators). -(Nikita Popov) - . Added "finally" keyword (https://wiki.php.net/rfc/finally). (Laruence) - . Add simplified password hashing API -(https://wiki.php.net/rfc/password_hash). (Anthony Ferrara) - . Added support for list in foreach (https://wiki.php.net/rfc/foreachlist). -(Laruence) - . Added support for using empty() on the result of function calls and -other expressions (https://wiki.php.net/rfc/empty_isset_exprs). -(Nikita Popov) - . Added support for constant array/string dereferencing. (Laruence) - . Improve set_exception_handler while doing reset.(Laruence) - . Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), -zend_logo_guid(). (Adnrew Faulds) - . Drop Windows XP and 2003 support. (Pierre) - -- Calendar: - . Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar) -(Stas, Eitan Mosenkis) - -- Core: - . Added boolval(). (Jille Timmermans) - . Added "Z" option to pack/unpack. (Gustavo) - . Implemented FR #60738 (Allow 'set_error_handler' to handle NULL). -(Laruence, Nikita Popov) - . Added optional second argument for assert() to specify custom message. Patch -by Lonny Kapelushnik (lo...@lonnylot.com). (Lars) - . Fixed bug #18556 (Engine uses locale rules to handle class names). (Stas) - . Fixed bug #61681 (Malform
[PHP-CVS] com php-src: Bug #62489: dba_insert not working as expected: NEWS ext/dba/dba_flatfile.c ext/dba/dba_gdbm.c ext/dba/dba_inifile.c ext/dba/dba_qdbm.c ext/dba/tests/dba_db1.phpt ext/dba/tests/
Commit:eb40f73ca0a2a7563fbc95cc22741412e0beb76e Author:Lars Strojny Tue, 15 Jan 2013 09:30:44 +0100 Parents: 6dc80f080ea97c09b36d8a05ec7ec5067f394c01 Branches: PHP-5.5 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=eb40f73ca0a2a7563fbc95cc22741412e0beb76e Log: Bug #62489: dba_insert not working as expected Bugs: https://bugs.php.net/62489 Changed paths: M NEWS M ext/dba/dba_flatfile.c M ext/dba/dba_gdbm.c M ext/dba/dba_inifile.c M ext/dba/dba_qdbm.c M ext/dba/tests/dba_db1.phpt M ext/dba/tests/dba_db2.phpt M ext/dba/tests/dba_db3.phpt M ext/dba/tests/dba_db4_000.phpt M ext/dba/tests/dba_dbm.phpt M ext/dba/tests/dba_flatfile.phpt M ext/dba/tests/dba_gdbm.phpt M ext/dba/tests/dba_handler.inc M ext/dba/tests/dba_inifile.phpt M ext/dba/tests/dba_ndbm.phpt M ext/dba/tests/dba_qdbm.phpt M ext/dba/tests/dba_tcadb.phpt diff --git a/NEWS b/NEWS index 9e8cd85..4145dc5 100644 --- a/NEWS +++ b/NEWS @@ -27,12 +27,16 @@ PHP NEWS - DateTime . Added DateTimeImmutable - a variant of DateTime that only returns the -modified state instead of changing itself. (Derick) +modified state instead of changing itself. (Derick) - pgsql: . Bug #46408: Locale number format settings can cause pg_query_params to break with numerics. (asmecher, Lars) +- dba: + . Bug #62489: dba_insert not working as expected. +(marc-bennewitz at arcor dot de, Lars) + 18 Dec 2012, PHP 5.5.0 Alpha 2 - General improvements: diff --git a/ext/dba/dba_flatfile.c b/ext/dba/dba_flatfile.c index 082aa5c..34aa635 100644 --- a/ext/dba/dba_flatfile.c +++ b/ext/dba/dba_flatfile.c @@ -88,15 +88,16 @@ DBA_UPDATE_FUNC(flatfile) gval.dsize = vallen; switch(flatfile_store(dba, gkey, gval, mode==1 ? FLATFILE_INSERT : FLATFILE_REPLACE TSRMLS_CC)) { - case -1: - php_error_docref1(NULL TSRMLS_CC, key, E_WARNING, "Operation not possible"); - return FAILURE; - default: - case 0: - return SUCCESS; - case 1: - php_error_docref1(NULL TSRMLS_CC, key, E_WARNING, "Key already exists"); - return FAILURE; + case 0: + return SUCCESS; + case 1: + return FAILURE; + case -1: + php_error_docref1(NULL TSRMLS_CC, key, E_WARNING, "Operation not possible"); + return FAILURE; + default: + php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "Unknown return value"); + return FAILURE; } } diff --git a/ext/dba/dba_gdbm.c b/ext/dba/dba_gdbm.c index 7534568..47dd576 100644 --- a/ext/dba/dba_gdbm.c +++ b/ext/dba/dba_gdbm.c @@ -104,11 +104,18 @@ DBA_UPDATE_FUNC(gdbm) gval.dptr = (char *) val; gval.dsize = vallen; - if(gdbm_store(dba->dbf, gkey, gval, - mode == 1 ? GDBM_INSERT : GDBM_REPLACE) == 0) - return SUCCESS; - php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", gdbm_strerror(gdbm_errno)); - return FAILURE; + switch (gdbm_store(dba->dbf, gkey, gval, mode == 1 ? GDBM_INSERT : GDBM_REPLACE)) { + case 0: + return SUCCESS; + case 1: + return FAILURE; + case -1: + php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", gdbm_strerror(gdbm_errno)); + return FAILURE; + default: + php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "Unknown return value"); + return FAILURE; + } } DBA_EXISTS_FUNC(gdbm) diff --git a/ext/dba/dba_inifile.c b/ext/dba/dba_inifile.c index e1359b6..05ee95c 100644 --- a/ext/dba/dba_inifile.c +++ b/ext/dba/dba_inifile.c @@ -101,7 +101,6 @@ DBA_UPDATE_FUNC(inifile) case 0: return SUCCESS; case 1: - php_error_docref1(NULL TSRMLS_CC, key, E_WARNING, "Key already exists"); return FAILURE; } } diff --git a/ext/dba/dba_qdbm.c b/ext/dba/dba_qdbm.c index 485b199..eeece57 100644 --- a/ext/dba/dba_qdbm.c +++ b/ext/dba/dba_qdbm.c @@ -96,13 +96,15 @@ DBA_FETCH_FUNC(qdbm) DBA_UPDATE_FUNC(qdbm) { QDBM_DATA; - int result; - result = dpput(dba->dbf, key, keylen, val, vallen, mode == 1 ? DP_DKEEP : DP_DOVER); - if (result) + if (dpput(dba->dbf, key, keylen, val, vallen, mode == 1 ? DP_DKEEP : DP_DOVER)) { return SUCCESS; + } + + if (dpecode != DP_EKEEP) { + php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", dperrmsg(dpecode)); + } - php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", dperrmsg(dpecode
[PHP-CVS] com php-src: fix NEWS: NEWS
Commit:374ebc87416d9e31efd961a3176510e3a901355b Author:Stanislav Malyshev Tue, 15 Jan 2013 00:06:35 -0800 Parents: 0510701474e8d99b5b30139b5599e44f9b555a5a Branches: PHP-5.4 PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=374ebc87416d9e31efd961a3176510e3a901355b Log: fix NEWS Changed paths: M NEWS Diff: diff --git a/NEWS b/NEWS index 79d5d9a..5f45667 100644 --- a/NEWS +++ b/NEWS @@ -7,9 +7,18 @@ PHP NEWS protected property). (Stas) . Fixed bug #63943 (Bad warning text from strpos() on empty needle). (Laruence) + . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry) + . Fixed bug #43225 (fputcsv incorrectly handles cells ending in \ followed +by "). (Adam) . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars) +- Date: + . Fixed bug #63699 (Performance improvements for various ext/date functions). +(Lars, original patch by njaguar at gmail dot com) + . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. +(Derick) + - Litespeed: . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George) @@ -27,7 +36,6 @@ PHP NEWS ?? ??? 2012, PHP 5.4.11 - Core: - . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). (Johannes) . Fixed bug #43177 (Errors in eval()'ed code produce status code 500). @@ -56,10 +64,6 @@ PHP NEWS . Fixed bug #55438 (Curlwapper is not sending http header randomly). (php...@lostreality.org, Pierrick) -- Date: - . Fixed bug #63699 (Performance improvements for various ext/date functions). -(Lars, original patch by njaguar at gmail dot com) - 20 Dec 2012, PHP 5.4.10 - Core: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] com php-src: fix NEWS: NEWS
Commit:643e7a54ec8e06a0fc9996eea9d0125f4fa531a5 Author:Stanislav Malyshev Tue, 15 Jan 2013 00:06:35 -0800 Parents: 3bc74903706ab08e916905a0bd634e77aa804def Branches: PHP-5.5 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=643e7a54ec8e06a0fc9996eea9d0125f4fa531a5 Log: fix NEWS Changed paths: M NEWS Diff: diff --git a/NEWS b/NEWS index 79d5d9a..5f45667 100644 --- a/NEWS +++ b/NEWS @@ -7,9 +7,18 @@ PHP NEWS protected property). (Stas) . Fixed bug #63943 (Bad warning text from strpos() on empty needle). (Laruence) + . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry) + . Fixed bug #43225 (fputcsv incorrectly handles cells ending in \ followed +by "). (Adam) . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars) +- Date: + . Fixed bug #63699 (Performance improvements for various ext/date functions). +(Lars, original patch by njaguar at gmail dot com) + . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. +(Derick) + - Litespeed: . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George) @@ -27,7 +36,6 @@ PHP NEWS ?? ??? 2012, PHP 5.4.11 - Core: - . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence) . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user). (Johannes) . Fixed bug #43177 (Errors in eval()'ed code produce status code 500). @@ -56,10 +64,6 @@ PHP NEWS . Fixed bug #55438 (Curlwapper is not sending http header randomly). (php...@lostreality.org, Pierrick) -- Date: - . Fixed bug #63699 (Performance improvements for various ext/date functions). -(Lars, original patch by njaguar at gmail dot com) - 20 Dec 2012, PHP 5.4.10 - Core: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php