[php-src] master: streams: use built-in argument handling for warnings instead of 2 param functions (#22749)
Gina Peter Banyard via GitHub <[email protected]>
| Newsgroups | gmane.comp.php.cvs.general |
|---|---|
| Message-ID | <[email protected]> |
Author: Gina Peter Banyard (Girgias) Committer: GitHub (web-flow) Pusher: Girgias Date: 2026-07-15T19:33:48+01:00 Commit: https://github.com/php/php-src/commit/0f78dbaab2c183c210d223fd1b153c0bf8525298 Raw diff: https://github.com/php/php-src/commit/0f78dbaab2c183c210d223fd1b153c0bf8525298.diff streams: use built-in argument handling for warnings instead of 2 param functions (#22749) Since all warnings can now display the arguments of the call, the stream layer can just piggyback on-top of it instead of the additional complexity of handling it. This is only a first step as there is still the 1 param variant that needs to be converted. Changed paths: M ext/standard/tests/file/rename_variation.phpt M ext/standard/tests/file/rename_variation12.phpt M ext/standard/tests/file/rename_variation13.phpt M ext/standard/tests/file/rename_variation5.phpt M ext/standard/tests/file/rename_variation8.phpt M main/streams/php_stream_errors.h M main/streams/plain_wrapper.c M main/streams/stream_errors.c Diff: diff --git a/ext/standard/tests/file/rename_variation.phpt b/ext/standard/tests/file/rename_variation.phpt index b86c5c80973d..88ad26080f4a 100644 --- a/ext/standard/tests/file/rename_variation.phpt +++ b/ext/standard/tests/file/rename_variation.phpt @@ -55,7 +55,7 @@ bool(false) bool(true) -- Iteration 2 -- -Warning: rename(%s,%s): Not a directory in %s on line %d +Warning: rename(): Not a directory in %s on line %d bool(false) bool(false) bool(false) diff --git a/ext/standard/tests/file/rename_variation12.phpt b/ext/standard/tests/file/rename_variation12.phpt index 8675b17aab5c..954c12427232 100644 --- a/ext/standard/tests/file/rename_variation12.phpt +++ b/ext/standard/tests/file/rename_variation12.phpt @@ -2,6 +2,9 @@ Test rename() function : variation - various relative, absolute paths --CREDITS-- Dave Kelsey <[email protected]> +--INI-- +zend.exception_string_param_max_len=1000000 +error_include_args=On --SKIPIF-- <?php if (substr(PHP_OS, 0, 3) == 'WIN') die('skip.. not for Windows'); @@ -83,12 +86,12 @@ bool(true) -- Iteration 5 -- -Warning: rename(%s/renameVar12/renameVar12Sub/..///renameVar12Sub//..//../renameVar12Sub/renameMe.tmp,%s/renameVar12/renameVar12Sub/..///renameVar12Sub//..//../renameVar12Sub/IwasRenamed.tmp): %s in %s on line %d +Warning: rename('%s/renameVar12/renameVar12Sub/..///renameVar12Sub//..//../renameVar12Sub/renameMe.tmp', '%s/renameVar12/renameVar12Sub/..///renameVar12Sub//..//../renameVar12Sub/IwasRenamed.tmp'): %s in %s on line %d bool(false) -- Iteration 6 -- -Warning: rename(%s/renameVar12/renameVar12Sub/BADDIR/renameMe.tmp,%s/renameVar12/renameVar12Sub/BADDIR/IwasRenamed.tmp): %s in %s on line %d +Warning: rename('%s/renameVar12/renameVar12Sub/BADDIR/renameMe.tmp', '%s/renameVar12/renameVar12Sub/BADDIR/IwasRenamed.tmp'): %s in %s on line %d bool(false) -- Iteration 7 -- @@ -109,7 +112,7 @@ bool(true) -- Iteration 11 -- -Warning: rename(BADDIR/renameMe.tmp,BADDIR/IwasRenamed.tmp): %s in %s on line %d +Warning: rename('BADDIR/renameMe.tmp', 'BADDIR/IwasRenamed.tmp'): %s in %s on line %d bool(false) *** Done *** diff --git a/ext/standard/tests/file/rename_variation13.phpt b/ext/standard/tests/file/rename_variation13.phpt index 1fa95f37266c..e53cf86f16bb 100644 --- a/ext/standard/tests/file/rename_variation13.phpt +++ b/ext/standard/tests/file/rename_variation13.phpt @@ -2,6 +2,9 @@ Test rename() function : variation - various invalid paths --CREDITS-- Dave Kelsey <[email protected]> +--INI-- +zend.exception_string_param_max_len=1000000 +error_include_args=On --SKIPIF-- <?php if(substr(PHP_OS, 0, 3) == "WIN") @@ -56,43 +59,43 @@ rmdir($file_path); -- testing '-1' -- bool(true) -Warning: rename(-1,%s/renameVar13/afile.tmp): No such file or directory in %s on line %d +Warning: rename('-1', '%s/renameVar13/afile.tmp'): No such file or directory in %s on line %d bool(false) -- testing '1' -- bool(true) -Warning: rename(1,%s/renameVar13/afile.tmp): No such file or directory in %s on line %d +Warning: rename('1', '%s/renameVar13/afile.tmp'): No such file or directory in %s on line %d bool(false) -- testing '' -- -Warning: rename(%s/renameVar13/afile.tmp,): %s in %s on line %d +Warning: rename('%s/renameVar13/afile.tmp', ''): %s in %s on line %d bool(false) -Warning: rename(,%s/renameVar13/afile.tmp): %s in %s on line %d +Warning: rename('', '%s/renameVar13/afile.tmp'): %s in %s on line %d bool(false) -- testing '' -- -Warning: rename(%s/renameVar13/afile.tmp,): %s in %s on line %d +Warning: rename('%s/renameVar13/afile.tmp', ''): %s in %s on line %d bool(false) -Warning: rename(,%s/renameVar13/afile.tmp): %s in %s on line %d +Warning: rename('', '%s/renameVar13/afile.tmp'): %s in %s on line %d bool(false) -- testing ' ' -- bool(true) -Warning: rename( ,%s/renameVar13/afile.tmp): No such file or directory in %s on line %d +Warning: rename(' ', '%s/renameVar13/afile.tmp'): No such file or directory in %s on line %d bool(false) -- testing '/no/such/file/dir' -- -Warning: rename(%s/renameVar13/afile.tmp,/no/such/file/dir): No such file or directory in %s on line %d +Warning: rename('%s/renameVar13/afile.tmp', '/no/such/file/dir'): No such file or directory in %s on line %d bool(false) -Warning: rename(/no/such/file/dir,%s/renameVar13/afile.tmp): No such file or directory in %s on line %d +Warning: rename('/no/such/file/dir', '%s/renameVar13/afile.tmp'): No such file or directory in %s on line %d bool(false) -- testing 'php/php' -- -Warning: rename(%s/renameVar13/afile.tmp,php/php): %s directory in %s on line %d +Warning: rename('%s/renameVar13/afile.tmp', 'php/php'): %s directory in %s on line %d bool(false) -Warning: rename(php/php,%s/renameVar13/afile.tmp): %s directory in %s on line %d +Warning: rename('php/php', '%s/renameVar13/afile.tmp'): %s directory in %s on line %d bool(false) diff --git a/ext/standard/tests/file/rename_variation5.phpt b/ext/standard/tests/file/rename_variation5.phpt index 04a4e23c7c98..0010935da455 100644 --- a/ext/standard/tests/file/rename_variation5.phpt +++ b/ext/standard/tests/file/rename_variation5.phpt @@ -70,7 +70,7 @@ bool(true) -- Renaming existing link to existing directory name -- -Warning: rename(%s,%s): Is a directory in %s on line %d +Warning: rename(): Is a directory in %s on line %d bool(false) -- Renaming existing link to existing file name -- @@ -78,7 +78,7 @@ bool(true) -- Renaming existing file to existing directory name -- -Warning: rename(%s,%s): Is a directory in %s on line %d +Warning: rename(): Is a directory in %s on line %d bool(false) -- Renaming existing file to existing link name -- @@ -86,11 +86,11 @@ bool(true) -- Renaming existing directory to existing file name -- -Warning: rename(%s,%s): Not a directory in %s on line %d +Warning: rename(): Not a directory in %s on line %d bool(false) -- Renaming existing directory to existing link name -- -Warning: rename(%s,%s): Not a directory in %s on line %d +Warning: rename(): Not a directory in %s on line %d bool(false) Done diff --git a/ext/standard/tests/file/rename_variation8.phpt b/ext/standard/tests/file/rename_variation8.phpt index 89d4bab7f0fe..d2bca9ffed14 100644 --- a/ext/standard/tests/file/rename_variation8.phpt +++ b/ext/standard/tests/file/rename_variation8.phpt @@ -46,7 +46,7 @@ rmdir(__DIR__."/rename_basic_dir1"); --EXPECTF-- *** Testing rename() on non-existing file *** -Warning: rename(%s/non_existent_file.tmp,%s/rename_variation8_new.tmp): No such file or directory in %s on line %d +Warning: rename(): No such file or directory in %s on line %d bool(false) bool(false) bool(false) @@ -58,7 +58,7 @@ bool(true) *** Testing rename() on non-existing directory *** -Warning: rename(%s/non_existent_dir,%s/rename_basic_dir2): No such file or directory in %s on line %d +Warning: rename(): No such file or directory in %s on line %d bool(false) bool(false) bool(false) diff --git a/main/streams/php_stream_errors.h b/main/streams/php_stream_errors.h index 1642a6bdabd7..239a34ff870f 100644 --- a/main/streams/php_stream_errors.h +++ b/main/streams/php_stream_errors.h @@ -135,11 +135,6 @@ PHPAPI void php_stream_wrapper_error_param(php_stream_wrapper *wrapper, php_stre zend_enum_StreamErrorCode code, const char *param, const char *fmt, ...) ZEND_ATTRIBUTE_FORMAT(printf, 9, 10); -PHPAPI void php_stream_wrapper_error_param2(php_stream_wrapper *wrapper, - php_stream_context *context, const char *docref, int options, int severity, - bool terminating, zend_enum_StreamErrorCode code, const char *param1, const char *param2, - const char *fmt, ...) ZEND_ATTRIBUTE_FORMAT(printf, 10, 11); - PHPAPI void php_stream_error(php_stream *stream, const char *docref, int severity, bool terminating, zend_enum_StreamErrorCode code, const char *fmt, ...) ZEND_ATTRIBUTE_FORMAT(printf, 6, 7); @@ -194,16 +189,6 @@ PHPAPI void php_stream_tidy_wrapper_error_log(php_stream_wrapper *wrapper); wrapper, context, NULL, options, E_WARNING, false, \ PHP_STREAM_EC(code), param, __VA_ARGS__) -#define php_stream_wrapper_warn_param2(wrapper, context, options, code, param1, param2, ...) \ - php_stream_wrapper_error_param2( \ - wrapper, context, NULL, options, E_WARNING, true, \ - PHP_STREAM_EC(code), param1, param2, __VA_ARGS__) - -#define php_stream_wrapper_warn_param2_nt(wrapper, context, options, code, param1, param2, ...) \ - php_stream_wrapper_error_param2( \ - wrapper, context, NULL, options, E_WARNING, false, \ - PHP_STREAM_EC(code), param1, param2, __VA_ARGS__) - #define php_stream_warn(stream, code, ...) \ php_stream_error(stream, NULL, E_WARNING, true, PHP_STREAM_EC(code), __VA_ARGS__) diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index 9335ab3fdb6c..9a98873b5d33 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -1385,8 +1385,8 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, const char *url_f if (errno != EPERM) { success = 0; } - php_stream_wrapper_error_param2(wrapper, context, NULL, options, E_WARNING, - !success, PHP_STREAM_EC(ChownFailed), url_from, url_to, + php_stream_wrapper_error(wrapper, context, NULL, options, E_WARNING, + !success, PHP_STREAM_EC(ChownFailed), "%s", php_socket_strerror_s(errno, errstr, sizeof(errstr))); } @@ -1395,8 +1395,8 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, const char *url_f if (errno != EPERM) { success = 0; } - php_stream_wrapper_error_param2(wrapper, context, NULL, options, E_WARNING, - !success, PHP_STREAM_EC(ChownFailed), url_from, url_to, + php_stream_wrapper_error(wrapper, context, NULL, options, E_WARNING, + !success, PHP_STREAM_EC(ChownFailed), "%s", php_socket_strerror_s(errno, errstr, sizeof(errstr))); } } @@ -1405,13 +1405,11 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, const char *url_f VCWD_UNLINK(url_from); } } else { - php_stream_wrapper_warn_param2_nt(wrapper, context, options, StatFailed, - url_from, url_to, + php_stream_wrapper_warn_nt(wrapper, context, options, StatFailed, "%s", php_socket_strerror_s(errno, errstr, sizeof(errstr))); } } else { - php_stream_wrapper_warn_param2_nt(wrapper, context, options, CopyFailed, - url_from, url_to, + php_stream_wrapper_warn_nt(wrapper, context, options, CopyFailed, "%s", php_socket_strerror_s(errno, errstr, sizeof(errstr))); } # if !defined(ZTS) && !defined(TSRM_WIN32) @@ -1425,8 +1423,8 @@ static int php_plain_files_rename(php_stream_wrapper *wrapper, const char *url_f #ifdef PHP_WIN32 php_win32_docref2_from_error(GetLastError(), url_from, url_to); #else - php_stream_wrapper_warn_param2(wrapper, context, options, - RenameFailed, url_from, url_to, + php_stream_wrapper_warn(wrapper, context, options, + RenameFailed, "%s", php_socket_strerror_s(errno, errstr, sizeof(errstr))); #endif return 0; diff --git a/main/streams/stream_errors.c b/main/streams/stream_errors.c index 87de69c35c0b..3b64e6ba39c5 100644 --- a/main/streams/stream_errors.c +++ b/main/streams/stream_errors.c @@ -646,29 +646,6 @@ PHPAPI void php_stream_wrapper_error_param(php_stream_wrapper *wrapper, php_stre code, param_copy, message); } -PHPAPI void php_stream_wrapper_error_param2(php_stream_wrapper *wrapper, - php_stream_context *context, const char *docref, int options, int severity, - bool terminating, zend_enum_StreamErrorCode code, const char *param1, const char *param2, - const char *fmt, ...) -{ - if (!(options & REPORT_ERRORS)) { - return; - } - - char *combined_param; - spprintf(&combined_param, 0, "%s,%s", param1, param2); - - va_list args; - va_start(args, fmt); - zend_string *message = vstrpprintf(0, fmt, args); - va_end(args); - - const char *wrapper_name = PHP_STREAM_ERROR_WRAPPER_NAME(wrapper); - - php_stream_wrapper_error_internal(wrapper_name, context, docref, options, severity, terminating, - code, combined_param, message); -} - /* Stream error reporting */ PHPAPI void php_stream_error(php_stream *stream, const char *docref, int severity,