Hi Ilia,

Ah, I had wondered what other places could be changed to use the _quick
functions (but didn't really check). :-)  Anyway, will this be applied to
HEAD also?


Matt


----- Original Message -----
From: "Ilia Alshanetsky"
Sent: Sunday, November 12, 2006

> iliaa Sun Nov 12 17:13:23 2006 UTC
>
>   Modified files:              (Branch: PHP_5_2)
>     /php-src NEWS
>     /php-src/ext/standard array.c
>   Log:
>   Optimized array functions utilizing php_splice().
>
>
>
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.357&r2=1.2027.2.547.2.358&diff_format=u
> Index: php-src/NEWS
> diff -u php-src/NEWS:1.2027.2.547.2.357 php-src/NEWS:1.2027.2.547.2.358
> --- php-src/NEWS:1.2027.2.547.2.357 Sun Nov 12 01:14:39 2006
> +++ php-src/NEWS Sun Nov 12 17:13:22 2006
> @@ -15,6 +15,7 @@
>  - Streams optimization (Dmitry)
>    . removed unnecessary ftell() calls (one call for each included PHP
file)
>    . disabled calls to read() after EOF
> +- Optimized array functions utilizing php_splice(). (Ilia)
>  - VCWD_REALPATH() is improved to use realpath cache without VIRTUAL_DIR.
>    (Dmitry)
>  - ext/bcmath intialization code is moved from request startup to module
>
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.308.2.21.2.15&r2=1.308.2.21.2.16&diff_format=u
> Index: php-src/ext/standard/array.c
> diff -u php-src/ext/standard/array.c:1.308.2.21.2.15
php-src/ext/standard/array.c:1.308.2.21.2.16
> --- php-src/ext/standard/array.c:1.308.2.21.2.15 Sun Nov 12 01:14:39 2006
> +++ php-src/ext/standard/array.c Sun Nov 12 17:13:22 2006
> @@ -21,7 +21,7 @@
>
+----------------------------------------------------------------------+
>  */
>
> -/* $Id: array.c,v 1.308.2.21.2.15 2006/11/12 01:14:39 bjori Exp $ */
> +/* $Id: array.c,v 1.308.2.21.2.16 2006/11/12 17:13:22 iliaa Exp $ */
>
>  #include "php.h"
>  #include "php_ini.h"
> @@ -1874,7 +1874,7 @@
>
>   /* Update output hash depending on key type */
>   if (p->nKeyLength)
> - zend_hash_update(out_hash, p->arKey, p->nKeyLength, &entry, sizeof(zval
*), NULL);
> + zend_hash_quick_update(out_hash, p->arKey, p->nKeyLength, p->h, &entry,
sizeof(zval *), NULL);
>   else
>   zend_hash_next_index_insert(out_hash, &entry, sizeof(zval *), NULL);
>   }
> @@ -1885,7 +1885,7 @@
>   entry = *((zval **)p->pData);
>   entry->refcount++;
>   if (p->nKeyLength)
> - zend_hash_update(*removed, p->arKey, p->nKeyLength, &entry, sizeof(zval
*), NULL);
> + zend_hash_quick_update(*removed, p->arKey, p->nKeyLength, p->h, &entry,
sizeof(zval *), NULL);
>   else
>   zend_hash_next_index_insert(*removed, &entry, sizeof(zval *), NULL);
>   }
> @@ -1897,17 +1897,7 @@
>   /* ..for each one, create a new zval, copy entry into it and copy it
into the output hash */
>   for (i=0; i<list_count; i++) {
>   entry = *list[i];
> - if (entry->refcount>=1000) {
> - zval *tmp = (zval *) emalloc(sizeof(zval));
> -
> - *tmp = *entry;
> - zval_copy_ctor(tmp);
> - tmp->refcount = 1;
> - tmp->is_ref = 0;
> - entry = tmp;
> - } else {
> - entry->refcount++;
> - }
> + entry->refcount++;
>   zend_hash_next_index_insert(out_hash, &entry, sizeof(zval *), NULL);
>   }
>   }
> @@ -1917,7 +1907,7 @@
>   entry = *((zval **)p->pData);
>   entry->refcount++;
>   if (p->nKeyLength)
> - zend_hash_update(out_hash, p->arKey, p->nKeyLength, &entry, sizeof(zval
*), NULL);
> + zend_hash_quick_update(out_hash, p->arKey, p->nKeyLength, p->h, &entry,
sizeof(zval *), NULL);
>   else
>   zend_hash_next_index_insert(out_hash, &entry, sizeof(zval *), NULL);
>   }
> @@ -2212,7 +2202,7 @@
>   /* Get the arguments and do error-checking */
>   argc = ZEND_NUM_ARGS();
>   if (argc < 2 || argc > 4 || zend_get_parameters_ex(argc, &input,
&offset, &length, &z_preserve_keys)) {
> - WRONG_PARAM_COUNT;
> + WRONG_PARA¬M_COUNT;
>   }
>
>   if (Z_TYPE_PP(input) != IS_ARRAY) {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to