This code is a fallback in instances where length is not know, which
is something that may happen. Given that this is an API function I
don't think we can make this change as it may break out-of-php code
that relies on this functionality. I really don't think you'll see
any visible gain by eliminating a if (!length) {} check.
On 12-Dec-06, at 2:31 PM, Ron Korving wrote:
> Hi,
>
> The strlen() check on line 4730 of ext/standard/string.c is pointless
> because of the length assignment in line 4720. Below is a patch
> (against
> latest 5.2) to remove them.
>
> Regards,
>
> Ron Korving
>
>
>
> Index: ext/standard/string.c
> ===================================================================
> RCS file: /repository/php-src/ext/standard/string.c,v
> retrieving revision 1.621
> diff -u -r1.621 string.c
> --- ext/standard/string.c 12 Dec 2006 18:17:56 -0000 1.621
> +++ ext/standard/string.c 12 Dec 2006 19:26:40 -0000
> @@ -4727,10 +4727,6 @@
> wlength = strlen(what);
> }
>
> - if (!length) {
> - length = strlen(str);
> - }
> -
> php_charmask((unsigned char*)what, wlength, flags TSRMLS_CC);
>
> for (source = str, end = source + length, target = new_str; (c =
> *source)
> || (source < end); source++) {
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
Ilia Alshanetsky