diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-02-17 17:59:18 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-02-17 17:59:18 +0400 |
commit | 2b9b9afa7a9a66f9c80013ce4121183bdff434e8 (patch) | |
tree | 6fa09b93653af14de10c02215632e5cc458cf60a /main/php_variables.c | |
parent | 50661690709630bd5dcea599bb0f276083292921 (diff) | |
download | php-git-2b9b9afa7a9a66f9c80013ce4121183bdff434e8.tar.gz |
Use better data structures (incomplete)
Diffstat (limited to 'main/php_variables.c')
-rw-r--r-- | main/php_variables.c | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/main/php_variables.c b/main/php_variables.c index b3d2b17763..1d57ceda28 100644 --- a/main/php_variables.c +++ b/main/php_variables.c @@ -561,18 +561,15 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC) if (SG(request_info).argc) { Z_ADDREF(arr); - Z_ADDREF(argc); - zend_hash_str_update(&EG(symbol_table).ht, "argv", sizeof("argv"), &arr); - zend_hash_str_add(&EG(symbol_table).ht, "argc", sizeof("argc"), &argc); + zend_hash_str_update(&EG(symbol_table).ht, "argv", sizeof("argv")-1, &arr); + zend_hash_str_add(&EG(symbol_table).ht, "argc", sizeof("argc")-1, &argc); } - if (track_vars_array) { + if (track_vars_array && Z_TYPE_P(track_vars_array) == IS_ARRAY) { Z_ADDREF(arr); - Z_ADDREF(argc); - zend_hash_str_update(Z_ARRVAL_P(track_vars_array), "argv", sizeof("argv"), &arr); - zend_hash_str_update(Z_ARRVAL_P(track_vars_array), "argc", sizeof("argc"), &argc); + 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); } zval_ptr_dtor(&arr); - zval_ptr_dtor(&argc); } /* }}} */ @@ -735,7 +732,6 @@ static zend_bool php_auto_globals_create_server(zend_string *name TSRMLS_DC) if ((argc = zend_hash_str_find(&EG(symbol_table).ht, "argc", sizeof("argc")-1)) != NULL && (argv = zend_hash_str_find(&EG(symbol_table).ht, "argv", sizeof("argv")-1)) != NULL) { - Z_ADDREF_P(argc); 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); @@ -817,13 +813,13 @@ static zend_bool php_auto_globals_create_request(zend_string *name TSRMLS_DC) void php_startup_auto_globals(TSRMLS_D) { - zend_register_auto_global(STR_INIT("_GET", sizeof("_GET")-1, 0), 0, php_auto_globals_create_get TSRMLS_CC); - zend_register_auto_global(STR_INIT("_POST", sizeof("_POST")-1, 0), 0, php_auto_globals_create_post TSRMLS_CC); - zend_register_auto_global(STR_INIT("_COOKIE", sizeof("_COOKIE")-1, 0), 0, php_auto_globals_create_cookie TSRMLS_CC); - zend_register_auto_global(STR_INIT("_SERVER", sizeof("_SERVER")-1, 0), PG(auto_globals_jit), php_auto_globals_create_server TSRMLS_CC); - zend_register_auto_global(STR_INIT("_ENV", sizeof("_ENV")-1, 0), PG(auto_globals_jit), php_auto_globals_create_env TSRMLS_CC); - zend_register_auto_global(STR_INIT("_REQUEST", sizeof("_REQUEST")-1, 0), PG(auto_globals_jit), php_auto_globals_create_request TSRMLS_CC); - zend_register_auto_global(STR_INIT("_FILES", sizeof("_FILES")-1, 0), 0, php_auto_globals_create_files TSRMLS_CC); + zend_register_auto_global(STR_INIT("_GET", sizeof("_GET")-1, 1), 0, php_auto_globals_create_get TSRMLS_CC); + zend_register_auto_global(STR_INIT("_POST", sizeof("_POST")-1, 1), 0, php_auto_globals_create_post TSRMLS_CC); + zend_register_auto_global(STR_INIT("_COOKIE", sizeof("_COOKIE")-1, 1), 0, php_auto_globals_create_cookie TSRMLS_CC); + zend_register_auto_global(STR_INIT("_SERVER", sizeof("_SERVER")-1, 1), PG(auto_globals_jit), php_auto_globals_create_server TSRMLS_CC); + zend_register_auto_global(STR_INIT("_ENV", sizeof("_ENV")-1, 1), PG(auto_globals_jit), php_auto_globals_create_env TSRMLS_CC); + zend_register_auto_global(STR_INIT("_REQUEST", sizeof("_REQUEST")-1, 1), PG(auto_globals_jit), php_auto_globals_create_request TSRMLS_CC); + zend_register_auto_global(STR_INIT("_FILES", sizeof("_FILES")-1, 1), 0, php_auto_globals_create_files TSRMLS_CC); } /* |