aboutsummaryrefslogtreecommitdiffstats
path: root/array.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2018-08-02 20:41:40 +0300
committerArnold D. Robbins <arnold@skeeve.com>2018-08-02 20:41:40 +0300
commitef5a30e67615e1acc931e2f542b09f114ba30a97 (patch)
tree6f99a27e320b0a90830475bb53afcdae050726ab /array.c
parent0b5a1bcd8b7189cb2d3048ef8e8d39dd33e2bec6 (diff)
parent48f02e6672003d218d4c0348a6add7931522603b (diff)
downloadegawk-ef5a30e67615e1acc931e2f542b09f114ba30a97.tar.gz
egawk-ef5a30e67615e1acc931e2f542b09f114ba30a97.tar.bz2
egawk-ef5a30e67615e1acc931e2f542b09f114ba30a97.zip
Merge branch 'master' into feature/fix-comments
Diffstat (limited to 'array.c')
-rw-r--r--array.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/array.c b/array.c
index 5d953c04..aa52f3a1 100644
--- a/array.c
+++ b/array.c
@@ -979,7 +979,6 @@ cmp_strings(const NODE *n1, const NODE *n2)
char *s1, *s2;
size_t len1, len2;
int ret;
- size_t lmin;
s1 = n1->stptr;
len1 = n1->stlen;
@@ -992,7 +991,9 @@ cmp_strings(const NODE *n1, const NODE *n2)
return 1;
/* len1 > 0 && len2 > 0 */
- lmin = len1 < len2 ? len1 : len2;
+ // make const to ensure it doesn't change if we
+ // need to call memcmp(), below
+ const size_t lmin = len1 < len2 ? len1 : len2;
if (IGNORECASE) {
const unsigned char *cp1 = (const unsigned char *) s1;
@@ -1002,7 +1003,9 @@ cmp_strings(const NODE *n1, const NODE *n2)
ret = strncasecmpmbs((const unsigned char *) cp1,
(const unsigned char *) cp2, lmin);
} else {
- for (ret = 0; lmin-- > 0 && ret == 0; cp1++, cp2++)
+ size_t count = lmin;
+
+ for (ret = 0; count-- > 0 && ret == 0; cp1++, cp2++)
ret = casetable[*cp1] - casetable[*cp2];
}
if (ret != 0)