From c20998a717f64aa6ab563f727f9eca52ab969624 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 17 Jun 2011 00:52:35 -0700 Subject: [PATCH] * buffer.c (compare_overlays, cmp_for_strings): Avoid subtraction overflow. --- src/ChangeLog | 1 + src/buffer.c | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 0d315bdec8..0f10082391 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -2,6 +2,7 @@ * buffer.c (struct sortvec.priority, struct sortstr.priority): Now EMACS_INT, not int. + (compare_overlays, cmp_for_strings): Avoid subtraction overflow. 2011-06-16 Paul Eggert diff --git a/src/buffer.c b/src/buffer.c index 898b457245..4487de1450 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -2858,11 +2858,11 @@ compare_overlays (const void *v1, const void *v2) const struct sortvec *s1 = (const struct sortvec *) v1; const struct sortvec *s2 = (const struct sortvec *) v2; if (s1->priority != s2->priority) - return s1->priority - s2->priority; + return s1->priority < s2->priority ? -1 : 1; if (s1->beg != s2->beg) - return s1->beg - s2->beg; + return s1->beg < s2->beg ? -1 : 1; if (s1->end != s2->end) - return s2->end - s1->end; + return s2->end < s1->end ? -1 : 1; return 0; } @@ -2955,9 +2955,9 @@ cmp_for_strings (const void *as1, const void *as2) struct sortstr *s1 = (struct sortstr *)as1; struct sortstr *s2 = (struct sortstr *)as2; if (s1->size != s2->size) - return s2->size - s1->size; + return s2->size < s1->size ? -1 : 1; if (s1->priority != s2->priority) - return s1->priority - s2->priority; + return s1->priority < s2->priority ? -1 : 1; return 0; } -- 2.20.1