From: Lars Ingebrigtsen Date: Mon, 25 Oct 2021 00:19:39 +0000 (+0200) Subject: Fix issues with type casting in delayed message functions X-Git-Tag: emacs-29.0.90~3671^2~428 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=83f1e4b3bcb9e651267adba79fed0a229263183e;p=emacs.git 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. --- 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); }