From: Dmitry Stogov Date: Mon, 14 Sep 2015 20:04:27 +0000 (+0300) Subject: Avoid reallocations X-Git-Tag: php-7.1.0alpha1~1176 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=927d68db246c8679bcfcf363eb61ae7b7a9f0dc8;p=php Avoid reallocations --- diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index 76f950bbcf..8587a82c8d 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -168,9 +168,7 @@ ZEND_API HashTable *zend_std_get_debug_info(zval *object, int *is_temp) /* {{{ * return zend_array_dup(Z_ARRVAL(retval)); } else if (Z_REFCOUNT(retval) <= 1) { *is_temp = 1; - ALLOC_HASHTABLE(ht); - *ht = *Z_ARRVAL(retval); - efree_size(Z_ARR(retval), sizeof(zend_array)); + ht = Z_ARR(retval); return ht; } else { *is_temp = 0; diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c index 8039244b5c..1c933d9ca4 100644 --- a/ext/mysqli/mysqli.c +++ b/ext/mysqli/mysqli.c @@ -1275,9 +1275,7 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags object_and_properties_init(return_value, ce, NULL); if (!ce->default_properties_count && !ce->__set) { - ALLOC_HASHTABLE(Z_OBJ_P(return_value)->properties); - *Z_OBJ_P(return_value)->properties = *Z_ARRVAL(dataset); - efree(Z_ARR(dataset)); + Z_OBJ_P(return_value)->properties = Z_ARR(dataset); } else { zend_merge_properties(return_value, Z_ARRVAL(dataset)); zval_ptr_dtor(&dataset); diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 89615080d8..e8e5a536f7 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -2781,9 +2781,7 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, zend_long result_ ZVAL_COPY_VALUE(&dataset, return_value); object_and_properties_init(return_value, ce, NULL); if (!ce->default_properties_count && !ce->__set) { - ALLOC_HASHTABLE(Z_OBJ_P(return_value)->properties); - *Z_OBJ_P(return_value)->properties = *Z_ARRVAL(dataset); - efree(Z_ARR(dataset)); + Z_OBJ_P(return_value)->properties = Z_ARR(dataset); } else { zend_merge_properties(return_value, Z_ARRVAL(dataset)); zval_ptr_dtor(&dataset);