From bed56428a6e767d68a974f5ad81bebf035eb44f4 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 30 Dec 2018 19:00:09 -0800 Subject: [PATCH] Fix assertion-violations on non-integers These bugs were introduced after bignums were added. * src/data.c (cons_to_unsigned, cons_to_signed): * src/xdisp.c (calc_line_height_property): Invoke integer_to_intmax and integer_to_uintmax only on integers. --- src/data.c | 4 ++-- src/xdisp.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data.c b/src/data.c index c64adb6635e..4ea71cea5d2 100644 --- a/src/data.c +++ b/src/data.c @@ -2655,7 +2655,7 @@ cons_to_unsigned (Lisp_Object c, uintmax_t max) else { Lisp_Object hi = CONSP (c) ? XCAR (c) : c; - valid = integer_to_uintmax (hi, &val); + valid = INTEGERP (hi) && integer_to_uintmax (hi, &val); if (valid && CONSP (c)) { @@ -2716,7 +2716,7 @@ cons_to_signed (Lisp_Object c, intmax_t min, intmax_t max) else { Lisp_Object hi = CONSP (c) ? XCAR (c) : c; - valid = integer_to_intmax (hi, &val); + valid = INTEGERP (hi) && integer_to_intmax (hi, &val); if (valid && CONSP (c)) { diff --git a/src/xdisp.c b/src/xdisp.c index 65a61a0120c..4cb10503e60 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -27991,7 +27991,7 @@ calc_line_height_property (struct it *it, Lisp_Object val, struct font *font, /* FIXME: Check for overflow in multiplication or conversion. */ if (FLOATP (val)) height = (int)(XFLOAT_DATA (val) * height); - else + else if (INTEGERP (val)) { intmax_t v; if (integer_to_intmax (val, &v)) -- 2.39.5