From: Andrey Hristov Date: Sat, 22 Feb 2003 10:54:26 +0000 (+0000) Subject: rehash only in case something is changed. X-Git-Tag: RELEASE_0_5~825 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=94040a28ce4a90d00da051dbb1968d5e029ac396;p=php rehash only in case something is changed. #lowers the execution time in half on my machine on array with 1000 elements #with nonscalar keys. Maybe it can be optimized further. --- diff --git a/ext/standard/array.c b/ext/standard/array.c index 32edd74c1f..cf4f1889cf 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1866,7 +1866,9 @@ static void _phpi_pop(INTERNAL_FUNCTION_PARAMETERS, int off_the_end) p = p->pListNext; } Z_ARRVAL_PP(stack)->nNextFreeElement = k; - zend_hash_rehash(Z_ARRVAL_PP(stack)); + if (k) { + zend_hash_rehash(Z_ARRVAL_PP(stack)); + } } else if (!key_len) { Z_ARRVAL_PP(stack)->nNextFreeElement = Z_ARRVAL_PP(stack)->nNextFreeElement - 1; }