bug#81561: 31.0.91; speedbar-window-mode creates stale idle timers

"J.P." <[email protected]>
Newsgroups gmane.emacs.bugs
Message-ID <[email protected]>
Hello people,

Vincenzo Pupillo <[email protected]> writes:

> Ciao, I wasn’t able to reproduce the problem reported by Daniel. The only way 
> was to kill the 'speedbar-buffer' process. So I added a 'kill-buffer-hook' to 
> handle this event. I also eliminated a few other causes of  stale idle timers.
>
> @Daniel, could you please try this patch?

Perhaps I'm hallucinating, but I seem to recall stale dframe timers
hanging around long before `speedbar-window-mode' came about and it
having something to do with `dframe-timer' becoming buffer-local back in
Emacs 29. If that's correct, shouldn't any functions that rely on that
variable, like `dframe-set-timer' and `dframe-set-timer-internal', be
made to run in whatever BUFFER-VAR is given to `dframe-frame-mode' on
init? If so, instead of wrapping all these `speedbar-timer-fn' call
sites in `with-current-buffer', what about doing so around
`dframe-set-timer' in `speedbar-set-timer'?

Thanks,
J.P.

P.S. If it's determined that this bug is not in fact directly related to
the introduction of `speedbar-window-mode', perhaps it's better to
revert a56e964941f "Speedbar: no more stale idle timers (bug#81561)" on
Emacs 31 and instead apply any future attempted fixes to master?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.