diff options
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r-- | ext/standard/array.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 1e354266a1..a20a588b1e 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1470,12 +1470,9 @@ PHP_FUNCTION(extract) if (var_name) { var_exists = zend_hash_exists_ind(symbol_table, var_name); } else if (extract_type == EXTR_PREFIX_ALL || extract_type == EXTR_PREFIX_INVALID) { - zval num; - - ZVAL_LONG(&num, num_key); - convert_to_string(&num); - php_prefix_varname(&final_name, prefix, Z_STRVAL(num), Z_STRLEN(num), 1); - zval_dtor(&num); + zend_string *str = zend_long_to_str(num_key); + php_prefix_varname(&final_name, prefix, str->val, str->len, 1); + zend_string_release(str); } else { continue; } @@ -3364,14 +3361,9 @@ PHP_FUNCTION(array_unique) } /* }}} */ -static int zval_compare(zval *a, zval *b) /* {{{ */ +static int zval_compare(zval *first, zval *second) /* {{{ */ { zval result; - zval *first; - zval *second; - - first = a; - second = b; if (Z_TYPE_P(first) == IS_INDIRECT) { first = Z_INDIRECT_P(first); |