diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2017-06-25 15:30:29 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2017-06-25 15:30:29 +0200 |
commit | bda0f4e8dce25280ee9db4b6058b80b74a80991f (patch) | |
tree | 8938c335072ba284ea4fedb1880ee6f0b395c218 /Zend/zend_builtin_functions.c | |
parent | 4e98990f6b164fa0ac2f5e8db6901ae75f32be2f (diff) | |
parent | de66e80d757f2a89fa16ee436d89ecc428f369a9 (diff) | |
download | php-git-bda0f4e8dce25280ee9db4b6058b80b74a80991f.tar.gz |
Merge branch 'PHP-7.0' into PHP-7.1
Diffstat (limited to 'Zend/zend_builtin_functions.c')
-rw-r--r-- | Zend/zend_builtin_functions.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 12f9f29636..4ec48a4c42 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -574,7 +574,7 @@ ZEND_FUNCTION(func_get_args) { zval *p, *q; uint32_t arg_count, first_extra_arg; - uint32_t i, n; + uint32_t i; zend_execute_data *ex = EX(prev_execute_data); if (ZEND_CALL_INFO(ex) & ZEND_CALL_CODE) { @@ -594,7 +594,6 @@ ZEND_FUNCTION(func_get_args) zend_hash_real_init(Z_ARRVAL_P(return_value), 1); ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(return_value)) { i = 0; - n = 0; p = ZEND_CALL_ARG(ex, 1); if (arg_count > first_extra_arg) { while (i < first_extra_arg) { @@ -604,7 +603,8 @@ ZEND_FUNCTION(func_get_args) if (Z_OPT_REFCOUNTED_P(q)) { Z_ADDREF_P(q); } - n++; + } else { + q = &EG(uninitialized_zval); } ZEND_HASH_FILL_ADD(q); p++; @@ -619,14 +619,15 @@ ZEND_FUNCTION(func_get_args) if (Z_OPT_REFCOUNTED_P(q)) { Z_ADDREF_P(q); } - n++; + } else { + q = &EG(uninitialized_zval); } ZEND_HASH_FILL_ADD(q); p++; i++; } } ZEND_HASH_FILL_END(); - Z_ARRVAL_P(return_value)->nNumOfElements = n; + Z_ARRVAL_P(return_value)->nNumOfElements = arg_count; } } /* }}} */ @@ -2301,7 +2302,6 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) / array_init_size(arg_array, num_args); if (num_args) { uint32_t i = 0; - uint32_t n = 0; zval *p = ZEND_CALL_ARG(call, 1); zend_hash_real_init(Z_ARRVAL_P(arg_array), 1); @@ -2324,12 +2324,9 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) / if (Z_OPT_REFCOUNTED_P(arg)) { Z_ADDREF_P(arg); } - n++; ZEND_HASH_FILL_ADD(arg); } else { - zval tmp; - ZVAL_UNDEF(&tmp); - ZEND_HASH_FILL_ADD(&tmp); + ZEND_HASH_FILL_ADD(&EG(uninitialized_zval)); } i++; } @@ -2339,9 +2336,10 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) / if (Z_OPT_REFCOUNTED_P(p)) { Z_ADDREF_P(p); } - n++; + ZEND_HASH_FILL_ADD(p); + } else { + ZEND_HASH_FILL_ADD(&EG(uninitialized_zval)); } - ZEND_HASH_FILL_ADD(p); p++; i++; } @@ -2354,14 +2352,15 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) / if (Z_OPT_REFCOUNTED_P(p)) { Z_ADDREF_P(p); } - n++; + ZEND_HASH_FILL_ADD(p); + } else { + ZEND_HASH_FILL_ADD(&EG(uninitialized_zval)); } - ZEND_HASH_FILL_ADD(p); p++; i++; } } ZEND_HASH_FILL_END(); - Z_ARRVAL_P(arg_array)->nNumOfElements = n; + Z_ARRVAL_P(arg_array)->nNumOfElements = num_args; } } /* }}} */ |