[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 7c0675a: Fix bignum FIXME in emacs-module.c
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master 7c0675a: Fix bignum FIXME in emacs-module.c |
Date: |
Thu, 30 Aug 2018 21:11:01 -0400 (EDT) |
branch: master
commit 7c0675af3c9aa7971c37aa9e7afdceae6bfea767
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Fix bignum FIXME in emacs-module.c
* src/emacs-module.c: Do not include bignum.h; no longer needed.
(module_extract_integer): Use bignum_to_intmax to avoid
incorrectly signaling overflow on platforms where intmax_t
is wider than long int.
---
src/emacs-module.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/emacs-module.c b/src/emacs-module.c
index cf92b0f..2ba5540 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -27,7 +27,6 @@ along with GNU Emacs. If not, see
<https://www.gnu.org/licenses/>. */
#include <stdio.h>
#include "lisp.h"
-#include "bignum.h"
#include "dynlib.h"
#include "coding.h"
#include "keyboard.h"
@@ -522,11 +521,10 @@ module_extract_integer (emacs_env *env, emacs_value n)
CHECK_INTEGER (l);
if (BIGNUMP (l))
{
- /* FIXME: This can incorrectly signal overflow on platforms
- where long is narrower than intmax_t. */
- if (!mpz_fits_slong_p (XBIGNUM (l)->value))
+ intmax_t i = bignum_to_intmax (l);
+ if (i == 0)
xsignal1 (Qoverflow_error, l);
- return mpz_get_si (XBIGNUM (l)->value);
+ return i;
}
return XFIXNUM (l);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 7c0675a: Fix bignum FIXME in emacs-module.c,
Paul Eggert <=