From: Juri Linkov Date: Sun, 8 Dec 2019 22:08:53 +0000 (+0200) Subject: * lisp/tab-line.el (tab-line-format): Use composite cache key (bug#38522) X-Git-Tag: emacs-27.0.90~405 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fe7ae74c0b0b40dff4af8fa46da8f5f537bb99a0;p=emacs.git * lisp/tab-line.el (tab-line-format): Use composite cache key (bug#38522) --- diff --git a/lisp/tab-line.el b/lisp/tab-line.el index d080da1867d..914cf13246a 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -417,8 +417,7 @@ variable `tab-line-tabs-function'." (defun tab-line-format-template (tabs) "Template for displaying tab line for selected window." - (let* ((window (selected-window)) - (selected-buffer (window-buffer window)) + (let* ((selected-buffer (window-buffer)) (separator (or tab-line-separator (if window-system " " "|"))) (hscroll (window-parameter nil 'tab-line-hscroll)) (strings @@ -471,11 +470,15 @@ variable `tab-line-tabs-function'." (defun tab-line-format () "Template for displaying tab line for selected window." - (let ((tabs (funcall tab-line-tabs-function)) - (cache (window-parameter nil 'tab-line-cache))) - (or (and cache (equal (car cache) tabs) (cdr cache)) - (cdr (set-window-parameter nil 'tab-line-cache - (cons tabs (tab-line-format-template tabs))))))) + (let* ((tabs (funcall tab-line-tabs-function)) + (cache-key (list tabs + (window-buffer) + (window-parameter nil 'tab-line-hscroll))) + (cache (window-parameter nil 'tab-line-cache))) + (or (and cache (equal (car cache) cache-key) (cdr cache)) + (cdr (set-window-parameter + nil 'tab-line-cache + (cons cache-key (tab-line-format-template tabs))))))) (defcustom tab-line-auto-hscroll t