]> granicus.if.org Git - php/commitdiff
make this faster and sexier
authorSterling Hughes <sterling@php.net>
Tue, 20 May 2003 19:09:33 +0000 (19:09 +0000)
committerSterling Hughes <sterling@php.net>
Tue, 20 May 2003 19:09:33 +0000 (19:09 +0000)
Zend/zend_operators.c

index b1afbb8b16fea336a065f5864bb75bc65175d3ff..fe20ab9c09e363ab9adc174175c24e2d4d2db48b 100644 (file)
@@ -1581,32 +1581,25 @@ ZEND_API int zval_is_true(zval *op)
 
 ZEND_API char *zend_str_tolower_copy(char *str, unsigned int length)
 {
-       char          *start;
        register char *result;
        register char *p = str;
-       register char *end = p + length;
 
        result = emalloc(length+1);
-       start = result;
 
-       while (p < end) {
-               *result++ = tolower(*p++);
-       }
-       *result = *end;
+       do {
+               result[length] = tolower(p[length]);
+       } while (length--);
        
-       return start;
+       return result;
 }
        
 ZEND_API void zend_str_tolower(char *str, unsigned int length)
 {
-       register char *p=str, *end=p+length;
+       register char *p=str;
        
-       while (p<end) {
-               if (*p >= 'A' && *p <= 'Z') {
-                       *p = (*p)+32;
-               }       
-               p++;
-       }
+       do {
+               p[length] = tolower(p[length]);
+       } while (length--);
 }
 
 ZEND_API int zend_binary_strcmp(char *s1, uint len1, char *s2, uint len2)