summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoriyoshi Koizumi <moriyoshi@php.net>2002-12-25 20:00:12 +0000
committerMoriyoshi Koizumi <moriyoshi@php.net>2002-12-25 20:00:12 +0000
commitd07f5296523ba26babf555c4f80b2e9efa313ed4 (patch)
tree0b3cbfa66885c2439a7931ac0a5de52c2f99a1e4
parentcb6d34ee25bdc26d9eeb3a07f98e0da5177d88d8 (diff)
downloadphp-git-d07f5296523ba26babf555c4f80b2e9efa313ed4.tar.gz
Fixed bug #21182
-rw-r--r--ext/standard/array.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 427a1ccd04..c4d122b6af 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -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 {