[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-25 68d58e6: Prefer intmax_t to int64_t in module cod
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] emacs-25 68d58e6: Prefer intmax_t to int64_t in module code |
Date: |
Thu, 19 Nov 2015 22:04:04 +0000 |
branch: emacs-25
commit 68d58e69738db41061812b10f2f3f50b6a1b9aa0
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Prefer intmax_t to int64_t in module code
* modules/mod-test/mod-test.c (sum, Fmod_test_sum):
* src/emacs-module.c (module_extract_integer)
(module_make_integer):
* src/emacs-module.h (struct emacs_env_25):
Prefer intmax_t to int64_t. This doesn’t change the generated
code on any of the machines Emacs currently ports to, but it’s
at least in theory more future-proof as C99 doesn’t guarantee
that int64_t exists.
---
modules/mod-test/mod-test.c | 9 +++++----
src/emacs-module.c | 13 +++----------
src/emacs-module.h | 5 ++---
3 files changed, 10 insertions(+), 17 deletions(-)
diff --git a/modules/mod-test/mod-test.c b/modules/mod-test/mod-test.c
index e27fb58..79f347f 100644
--- a/modules/mod-test/mod-test.c
+++ b/modules/mod-test/mod-test.c
@@ -31,7 +31,8 @@ Fmod_test_return_t (emacs_env *env, int nargs, emacs_value
args[], void *data)
}
/* Expose simple sum function. */
-static int64_t sum (int64_t a, int64_t b)
+static intmax_t
+sum (intmax_t a, intmax_t b)
{
return a + b;
}
@@ -39,10 +40,10 @@ static int64_t sum (int64_t a, int64_t b)
static emacs_value
Fmod_test_sum (emacs_env *env, int nargs, emacs_value args[], void *data)
{
- int64_t a = env->extract_integer (env, args[0]);
- int64_t b = env->extract_integer (env, args[1]);
+ intmax_t a = env->extract_integer (env, args[0]);
+ intmax_t b = env->extract_integer (env, args[1]);
- int64_t r = sum(a, b);
+ intmax_t r = sum (a, b);
return env->make_integer (env, r);
}
diff --git a/src/emacs-module.c b/src/emacs-module.c
index 4fa01bf..b39ac7d 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -451,11 +451,9 @@ module_eq (emacs_env *env, emacs_value a, emacs_value b)
return EQ (value_to_lisp (a), value_to_lisp (b));
}
-static int64_t
+static intmax_t
module_extract_integer (emacs_env *env, emacs_value n)
{
- verify (INT64_MIN <= MOST_NEGATIVE_FIXNUM);
- verify (INT64_MAX >= MOST_POSITIVE_FIXNUM);
check_main_thread ();
eassert (module_non_local_exit_check (env) == emacs_funcall_exit_return);
const Lisp_Object l = value_to_lisp (n);
@@ -468,16 +466,11 @@ module_extract_integer (emacs_env *env, emacs_value n)
}
static emacs_value
-module_make_integer (emacs_env *env, int64_t n)
+module_make_integer (emacs_env *env, intmax_t n)
{
check_main_thread ();
eassert (module_non_local_exit_check (env) == emacs_funcall_exit_return);
- if (n < MOST_NEGATIVE_FIXNUM)
- {
- module_non_local_exit_signal_1 (env, Qunderflow_error, Qnil);
- return NULL;
- }
- if (n > MOST_POSITIVE_FIXNUM)
+ if (! (MOST_NEGATIVE_FIXNUM <= n && n <= MOST_POSITIVE_FIXNUM))
{
module_non_local_exit_signal_1 (env, Qoverflow_error, Qnil);
return NULL;
diff --git a/src/emacs-module.h b/src/emacs-module.h
index 0469597..2759b1c 100644
--- a/src/emacs-module.h
+++ b/src/emacs-module.h
@@ -142,10 +142,9 @@ struct emacs_env_25
bool (*eq) (emacs_env *env, emacs_value a, emacs_value b);
- int_fast64_t (*extract_integer) (emacs_env *env,
- emacs_value value);
+ intmax_t (*extract_integer) (emacs_env *env, emacs_value value);
- emacs_value (*make_integer) (emacs_env *env, int_fast64_t value);
+ emacs_value (*make_integer) (emacs_env *env, intmax_t value);
double (*extract_float) (emacs_env *env, emacs_value value);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-25 68d58e6: Prefer intmax_t to int64_t in module code,
Paul Eggert <=