From 83f1e4b3bcb9e651267adba79fed0a229263183e Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Mon, 25 Oct 2021 02:19:39 +0200 Subject: [PATCH] Fix issues with type casting in delayed message functions * src/eval.c (with_delayed_message_display) (with_delayed_message_cancel, Ffuncall_with_delayed_message): Fix some type confusion. --- src/eval.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/eval.c b/src/eval.c index 110b67b587f..94ad0607732 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1082,12 +1082,13 @@ usage: (while TEST BODY...) */) static void with_delayed_message_display (struct atimer *timer) { - message3 (timer->client_data); + message3 (build_string (timer->client_data)); } static void with_delayed_message_cancel (void *timer) { + xfree (((struct atimer *) timer)->client_data); cancel_atimer (timer); } @@ -1111,13 +1112,11 @@ is not displayed. */) struct timespec interval = dtotimespec (XFLOATINT (timeout)); struct atimer *timer = start_atimer (ATIMER_RELATIVE, interval, with_delayed_message_display, - message); + xstrdup (SSDATA (message))); record_unwind_protect_ptr (with_delayed_message_cancel, timer); Lisp_Object result = CALLN (Ffuncall, function); - cancel_atimer (timer); - return unbind_to (count, result); } -- 2.39.5