Subject: bug#65147: 30.0.50; timer--activate: Invalid or uninitialized timer

From: David Ponce <[email-masked]>
Date: Tue, 8 Aug 2023 12:47:13 +0200

Hello,

On current master I constantly receive messages "timer--activate:
Invalid or uninitialized timer" as soon as a tooltip is requested to be
displayed, for example by just hovering tool-bar items with mouse.

After digging into the issue, I found that, in function
`tooltip-start-delayed-tip', call to `run-with-timer' is missing the
REPEAT argument.

The attached a patch that fixed the issue for me.

Thanks!

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
  3.24.38, cairo version 1.17.8) of 2023-08-08
Repository revision: eeda9eff1aa1ad973851d6589c5bcf6020a090e8
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 38 (KDE Plasma)

Configured using:
  'configure --prefix=/home/dponce --with-cairo --with-xwidget
  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
   value of $LC_TIME: fr_FR.utf8
   value of $LANG: fr_FR.UTF-8
   locale-coding-system: utf-8-unix

Major mode: Messages

Minor modes in effect:
   tooltip-mode: t
   global-eldoc-mode: t
   show-paren-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   tool-bar-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   buffer-read-only: t
   line-number-mode: t
   indent-tabs-mode: t
   transient-mark-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs ...)

Memory information:
((conses 16 39708 18141) (symbols 48 5207 0) (strings 32 13407 1256)
  (string-bytes 1 376858) (vectors 16 9418)
  (vector-slots 8 151276 16576) (floats 8 31 17) (intervals 56 174 67)
  (buffers 992 11))

diff --git a/lisp/tooltip.el b/lisp/tooltip.el
index 0881a7c7bf9..6f8a489e60c 100644
--- a/lisp/tooltip.el
+++ b/lisp/tooltip.el
@@ -200,7 +200,7 @@ tooltip-cancel-delayed-tip
 (defun tooltip-start-delayed-tip ()
   "Add a one-shot timeout to call function `tooltip-timeout'."
   (setq tooltip-timeout-id
-        (run-with-timer (tooltip-delay) 'tooltip-timeout nil)))
+        (run-with-timer (tooltip-delay) nil 'tooltip-timeout nil)))
 
 (defun tooltip-timeout (_object)
   "Function called when timer with id `tooltip-timeout-id' fires."