com php-src: Added "argv" and "argc" as known strings. Fixed incorrect "argc" update and corresponding phpdbg test.: Zend/zend_strin g.h
ext/standard/basic_functions.c main/php_variabl es.c sapi/phpdbg/tests/run_001.phpt
| From: | Dmitry Stogov | Date: | Thu, 30 Nov 2017 22:35:47 +0000 |
| Subject: | com php-src: Added "argv" and "argc" as known strings. Fixed incorrect "argc" update and corresponding phpdbg test.: Zend/zend_strin g.h ext/standard/basic_functions.c main/php_variabl es.c sapi/phpdbg/tests/run_001.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-100456@lists.php.net to get a copy of this message | ||
Commit: 7cc6f601345ea59b5a6a20b45e72328489a48336
Author: Dmitry Stogov <dmitry@zend.com> Fri, 1 Dec 2017 01:35:47 +0300
Parents: 64c5e38adf165d5bc2b4293d4c3c264e76122886
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7cc6f601345ea59b5a6a20b45e72328489a48336
Log:
Added "argv" and "argc" as known strings..
Fixed incorrect "argc" update and corresponding phpdbg test.
Changed paths:
M Zend/zend_string.h
M ext/standard/basic_functions.c
M main/php_variables.c
M sapi/phpdbg/tests/run_001.phpt
Diff:
diff --git a/Zend/zend_string.h b/Zend/zend_string.h
index 72a9b7d..eb981df 100644
--- a/Zend/zend_string.h
+++ b/Zend/zend_string.h
@@ -419,6 +419,8 @@ EMPTY_SWITCH_DEFAULT_CASE()
_(ZEND_STR_RESOURCE, "resource") \
_(ZEND_STR_CLOSED_RESOURCE, "resource (closed)") \
_(ZEND_STR_NAME, "name") \
+ _(ZEND_STR_ARGV, "argv") \
+ _(ZEND_STR_ARGC, "argc") \
typedef enum _zend_known_string_id {
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 7cc3b0a..0b52624 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -4361,8 +4361,8 @@ PHP_FUNCTION(getopt)
* in order to be on the safe side, even though it is also available
* from the symbol table. */
if ((Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY ||
zend_is_auto_global_str(ZEND_STRL("_SERVER"))) &&
- ((args = zend_hash_str_find_ind(Z_ARRVAL_P(&PG(http_globals)[TRACK_VARS_SERVER]),
"argv", sizeof("argv")-1)) != NULL ||
- (args = zend_hash_str_find_ind(&EG(symbol_table), "argv",
sizeof("argv")-1)) != NULL)
+ ((args = zend_hash_find_ind(Z_ARRVAL_P(&PG(http_globals)[TRACK_VARS_SERVER]),
ZSTR_KNOWN(ZEND_STR_ARGV))) != NULL ||
+ (args = zend_hash_find_ind(&EG(symbol_table), ZSTR_KNOWN(ZEND_STR_ARGV))) != NULL)
) {
int pos = 0;
zval *entry;
diff --git a/main/php_variables.c b/main/php_variables.c
index a23186c...43cadb1 100644
--- a/main/php_variables.c
+++ b/main/php_variables.c
@@ -604,13 +604,13 @@ PHPAPI void php_build_argv(char *s, zval *track_vars_array)
if (SG(request_info).argc) {
Z_ADDREF(arr);
- zend_hash_str_update(&EG(symbol_table), "argv", sizeof("argv")-1,
&arr);
- zend_hash_str_add(&EG(symbol_table), "argc", sizeof("argc")-1,
&argc);
+ zend_hash_update(&EG(symbol_table), ZSTR_KNOWN(ZEND_STR_ARGV), &arr);
+ zend_hash_update(&EG(symbol_table), ZSTR_KNOWN(ZEND_STR_ARGC), &argc);
}
if (track_vars_array && Z_TYPE_P(track_vars_array) == IS_ARRAY) {
Z_ADDREF(arr);
- zend_hash_str_update(Z_ARRVAL_P(track_vars_array), "argv", sizeof("argv")-1,
&arr);
- zend_hash_str_update(Z_ARRVAL_P(track_vars_array), "argc", sizeof("argc")-1,
&argc);
+ zend_hash_update(Z_ARRVAL_P(track_vars_array), ZSTR_KNOWN(ZEND_STR_ARGV), &arr);
+ zend_hash_update(Z_ARRVAL_P(track_vars_array), ZSTR_KNOWN(ZEND_STR_ARGC), &argc);
}
zval_ptr_dtor_nogc(&arr);
}
@@ -781,11 +781,11 @@ static zend_bool php_auto_globals_create_server(zend_string *name)
if (SG(request_info).argc) {
zval *argc, *argv;
- if ((argc = zend_hash_str_find_ind(&EG(symbol_table), "argc",
sizeof("argc")-1)) != NULL &&
- (argv = zend_hash_str_find_ind(&EG(symbol_table), "argv",
sizeof("argv")-1)) != NULL) {
+ if ((argc = zend_hash_find_ind(&EG(symbol_table), ZSTR_KNOWN(ZEND_STR_ARGC))) != NULL
&&
+ (argv = zend_hash_find_ind(&EG(symbol_table), ZSTR_KNOWN(ZEND_STR_ARGV))) != NULL) {
Z_ADDREF_P(argv);
- zend_hash_str_update(Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]), "argv",
sizeof("argv")-1, argv);
- zend_hash_str_update(Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]), "argc",
sizeof("argc")-1, argc);
+ zend_hash_update(Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]), ZSTR_KNOWN(ZEND_STR_ARGV),
argv);
+ zend_hash_update(Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]), ZSTR_KNOWN(ZEND_STR_ARGC),
argc);
}
} else {
php_build_argv(SG(request_info).query_string, &PG(http_globals)[TRACK_VARS_SERVER]);
diff --git a/sapi/phpdbg/tests/run_001.phpt b/sapi/phpdbg/tests/run_001.phpt
index 30aab1f..626ecb3 100644
--- a/sapi/phpdbg/tests/run_001.phpt
+++ b/sapi/phpdbg/tests/run_001.phpt
@@ -21,7 +21,7 @@ array(5) {
string(1) "3"
}
[Script ended normally]
-prompt> int(5)
+prompt> int(4)
array(4) {
[0]=>
string(%d) "%s"