emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master bed5642: Fix assertion-violations on non-integers


From: Paul Eggert
Subject: [Emacs-diffs] master bed5642: Fix assertion-violations on non-integers
Date: Sun, 30 Dec 2018 22:00:56 -0500 (EST)

branch: master
commit bed56428a6e767d68a974f5ad81bebf035eb44f4
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    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 c64adb6..4ea71ce 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 65a61a0..4cb1050 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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]