Commit bed56428 authored by Paul Eggert's avatar Paul Eggert

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.
parent 433b6a74
Pipeline #407 failed with stage
in 22 minutes and 35 seconds
......@@ -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))
{
......
......@@ -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))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment