From: Dmitry Stogov Date: Wed, 26 Aug 2015 11:53:41 +0000 (+0300) Subject: Avoid duplication X-Git-Tag: php-7.0.0RC2~2^2~71 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1f0f768e3f3e2115708847284285475ae1fd525b;p=php Avoid duplication --- diff --git a/ext/standard/array.c b/ext/standard/array.c index b6684c8dca..642cc29eba 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1520,7 +1520,7 @@ static void php_compact_var(HashTable *eg_active_symbol_table, zval *return_valu ZVAL_DEREF(entry); if (Z_TYPE_P(entry) == IS_STRING) { if ((value_ptr = zend_hash_find_ind(eg_active_symbol_table, Z_STR_P(entry))) != NULL) { - ZVAL_DUP(&data, value_ptr); + ZVAL_COPY(&data, value_ptr); zend_hash_update(Z_ARRVAL_P(return_value), Z_STR_P(entry), &data); } } else if (Z_TYPE_P(entry) == IS_ARRAY) { @@ -3292,12 +3292,14 @@ PHP_FUNCTION(array_unique) php_set_compare_func(sort_type); - RETVAL_ARR(zend_array_dup(Z_ARRVAL_P(array))); if (Z_ARRVAL_P(array)->nNumOfElements <= 1) { /* nothing to do */ + ZVAL_COPY(return_value, array); return; } + RETVAL_ARR(zend_array_dup(Z_ARRVAL_P(array))); + /* create and sort array with pointers to the target_hash buckets */ arTmp = (struct bucketindex *) pemalloc((Z_ARRVAL_P(array)->nNumOfElements + 1) * sizeof(struct bucketindex), Z_ARRVAL_P(array)->u.flags & HASH_FLAG_PERSISTENT); if (!arTmp) { diff --git a/ext/standard/type.c b/ext/standard/type.c index b4d8586dcc..ea88d41a23 100644 --- a/ext/standard/type.c +++ b/ext/standard/type.c @@ -154,8 +154,11 @@ PHP_FUNCTION(intval) ZEND_PARSE_PARAMETERS_END(); #endif - ZVAL_DUP(return_value, num); - convert_to_long_base(return_value, (int)base); + if (Z_TYPE_P(num) != IS_STRING) { + RETVAL_LONG(zval_get_long(num)); + } else { + RETVAL_LONG(ZEND_STRTOL(Z_STRVAL_P(num), NULL, base)); + } } /* }}} */