]> granicus.if.org Git - php/commitdiff
Fixed bug #21182
authorMoriyoshi Koizumi <moriyoshi@php.net>
Wed, 25 Dec 2002 20:00:12 +0000 (20:00 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Wed, 25 Dec 2002 20:00:12 +0000 (20:00 +0000)
ext/standard/array.c

index 427a1ccd0439c292ff2d9a8077cd31393b99cd41..c4d122b6aff38e6e98c76b2729bd24f16200e46d 100644 (file)
@@ -1429,18 +1429,17 @@ PHP_FUNCTION(range)
        array_init(return_value);
 
        if (Z_TYPE_PP(zlow)==IS_STRING && Z_TYPE_PP(zhigh)==IS_STRING) {
-               char *low, *high;
-               convert_to_string_ex(zlow);
-               convert_to_string_ex(zhigh);
-               low = Z_STRVAL_PP(zlow);
-               high = Z_STRVAL_PP(zhigh);
-               if (*low>*high) {
-                       for (; *low >= *high; (*low)--) {
-                               add_next_index_stringl(return_value, low, 1, 1);
+               unsigned char low, high;
+               low = *((unsigned char *)Z_STRVAL_PP(zlow));
+               high = *((unsigned char *)Z_STRVAL_PP(zhigh));
+               
+               if (low>high) {
+                       for (; low >= high; (low)--) {
+                               add_next_index_stringl(return_value, (char *)&low, 1, 1);
                        }       
                } else {
-                       for (; *low <= *high; (*low)++) {
-                               add_next_index_stringl(return_value, low, 1, 1);
+                       for (; low <= high; (low)++) {
+                               add_next_index_stringl(return_value, (char *)&low, 1, 1);
                        }       
                }
        } else {