]> granicus.if.org Git - php/commitdiff
bah humbug, use the pointer based version, which turns out to be an instruction
authorSterling Hughes <sterling@php.net>
Tue, 20 May 2003 22:31:15 +0000 (22:31 +0000)
committerSterling Hughes <sterling@php.net>
Tue, 20 May 2003 22:31:15 +0000 (22:31 +0000)
faster

Zend/zend_operators.c

index 4df314226ffb42b9d6d66bff425229ee8c9a0cc3..8915ca90a40d9813f975d4c682b96ca4875858ba 100644 (file)
@@ -1579,18 +1579,21 @@ ZEND_API int zval_is_true(zval *op)
        return (op->value.lval ? 1 : 0);
 }
 
-ZEND_API char *zend_str_tolower_copy(char *str, unsigned int length)
+ZEND_API char *zend_str_tolower_copy(char *p, unsigned int length)
 {
        register char *result;
-       register char *p = str;
+       register char *end = p + length;
+       char *start;
 
        result = emalloc(length+1);
+       start = result;
 
-       do {
-               result[length] = tolower(p[length]);
-       } while (length--);
-       
-       return result;
+       while (p < end) {
+               *result++ = tolower(*p++);
+       }
+       *result = *end;
+
+       return start;
 }
        
 ZEND_API void zend_str_tolower(char *str, unsigned int length)