FAQ
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++) {

Search Discussions

  • Ilia Alshanetsky at Dec 13, 2006 at 3:37 pm
    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
  • Ilia Alshanetsky at Dec 13, 2006 at 3:40 pm
    Nevermind the previous e-mail, I see that strlen() is already done
    inside safe_emalloc(), patch was applied, thanks.

    Ilia

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-internals @
categoriesphp
postedDec 12, '06 at 7:33p
activeDec 13, '06 at 3:40p
posts3
users2
websitephp.net

2 users in discussion

Ilia Alshanetsky: 2 posts Ron Korving: 1 post

People

Translate

site design / logo © 2022 Grokbase