diff options
| author | Philipp Stephani | 2019-04-24 13:17:53 +0200 |
|---|---|---|
| committer | Philipp Stephani | 2019-04-24 13:17:53 +0200 |
| commit | 534c33cf375182c97291d2dd242f936df5953321 (patch) | |
| tree | a36d85bbc81ad93397bd9f81e962274ccb08f7ef /src | |
| parent | e290a7d1730c99010272bbff7f497c3041cef46d (diff) | |
| download | emacs-534c33cf375182c97291d2dd242f936df5953321.tar.gz emacs-534c33cf375182c97291d2dd242f936df5953321.zip | |
Fix return type of make_time.
make_time is documented to return a (TICKS . HZ) pair, so we can’t use
make_lisp_time. Introduce a new conversion function instead.
* src/emacs-module.c (module_make_time): Use timespec_to_lisp to
correct return type.
* src/timefns.c (timespec_to_lisp): New function.
(make_lisp_time): Use it.
* test/src/emacs-module-tests.el (mod-test-add-nanosecond/valid):
Check return type.
Diffstat (limited to 'src')
| -rw-r--r-- | src/emacs-module.c | 2 | ||||
| -rw-r--r-- | src/systime.h | 1 | ||||
| -rw-r--r-- | src/timefns.c | 9 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/emacs-module.c b/src/emacs-module.c index e203ce1d348..41ce9ef03e4 100644 --- a/src/emacs-module.c +++ b/src/emacs-module.c | |||
| @@ -753,7 +753,7 @@ static emacs_value | |||
| 753 | module_make_time (emacs_env *env, struct timespec time) | 753 | module_make_time (emacs_env *env, struct timespec time) |
| 754 | { | 754 | { |
| 755 | MODULE_FUNCTION_BEGIN (NULL); | 755 | MODULE_FUNCTION_BEGIN (NULL); |
| 756 | return lisp_to_value (env, make_lisp_time (time)); | 756 | return lisp_to_value (env, timespec_to_lisp (time)); |
| 757 | } | 757 | } |
| 758 | 758 | ||
| 759 | static void | 759 | static void |
diff --git a/src/systime.h b/src/systime.h index 89af0c5e3df..125b2f1385e 100644 --- a/src/systime.h +++ b/src/systime.h | |||
| @@ -89,6 +89,7 @@ struct lisp_time | |||
| 89 | /* defined in timefns.c */ | 89 | /* defined in timefns.c */ |
| 90 | extern struct timeval make_timeval (struct timespec) ATTRIBUTE_CONST; | 90 | extern struct timeval make_timeval (struct timespec) ATTRIBUTE_CONST; |
| 91 | extern Lisp_Object make_lisp_time (struct timespec); | 91 | extern Lisp_Object make_lisp_time (struct timespec); |
| 92 | extern Lisp_Object timespec_to_lisp (struct timespec); | ||
| 92 | extern bool list4_to_timespec (Lisp_Object, Lisp_Object, Lisp_Object, | 93 | extern bool list4_to_timespec (Lisp_Object, Lisp_Object, Lisp_Object, |
| 93 | Lisp_Object, struct timespec *); | 94 | Lisp_Object, struct timespec *); |
| 94 | extern struct timespec lisp_time_argument (Lisp_Object); | 95 | extern struct timespec lisp_time_argument (Lisp_Object); |
diff --git a/src/timefns.c b/src/timefns.c index cb953d1b4ce..71280aea06a 100644 --- a/src/timefns.c +++ b/src/timefns.c | |||
| @@ -528,7 +528,14 @@ make_lisp_time (struct timespec t) | |||
| 528 | make_fixnum (ns / 1000), make_fixnum (ns % 1000 * 1000)); | 528 | make_fixnum (ns / 1000), make_fixnum (ns % 1000 * 1000)); |
| 529 | } | 529 | } |
| 530 | else | 530 | else |
| 531 | return Fcons (timespec_ticks (t), timespec_hz); | 531 | return timespec_to_lisp (t); |
| 532 | } | ||
| 533 | |||
| 534 | /* Return (TICKS . HZ) for time T. */ | ||
| 535 | struct Lisp_Object | ||
| 536 | timespec_to_lisp (struct timespec t) | ||
| 537 | { | ||
| 538 | return Fcons (timespec_ticks (t), timespec_hz); | ||
| 532 | } | 539 | } |
| 533 | 540 | ||
| 534 | /* Convert T to a Lisp timestamp. FORM specifies the timestamp format. */ | 541 | /* Convert T to a Lisp timestamp. FORM specifies the timestamp format. */ |