From 5c3534ffdcce41b1aab7bd158cf07224446caa9d Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 27 Apr 2016 19:21:41 -0400 Subject: [PATCH] * lisp/window.el (window--process-window-list): No-op if no processes. This avoids an issue with save-selected-window (from walk-windows) failing if frame.el is not loaded, eg if the terminal is resized during startup of a -nw CANNOT_DUMP build. (Bug#23369). --- lisp/window.el | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/lisp/window.el b/lisp/window.el index 0d7dbd844e..d9ac0e6d24 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -8520,24 +8520,25 @@ A window is associated with a process if that window is displaying that processes's buffer." (let ((processes (process-list)) (process-windows nil)) - (walk-windows - (lambda (window) - (let ((buffer (window-buffer window)) - (iter processes)) - (while (let ((process (car iter))) - (if (and (process-live-p process) - (eq buffer (process-buffer process))) - (let ((procwin (assq process process-windows))) - ;; Add this window to the list of windows - ;; displaying process. - (if procwin - (push window (cdr procwin)) - (push (list process window) process-windows)) - ;; We found our process for this window, so - ;; stop iterating over the process list. - nil) - (setf iter (cdr iter))))))) - 1 t) + (if processes + (walk-windows + (lambda (window) + (let ((buffer (window-buffer window)) + (iter processes)) + (while (let ((process (car iter))) + (if (and (process-live-p process) + (eq buffer (process-buffer process))) + (let ((procwin (assq process process-windows))) + ;; Add this window to the list of windows + ;; displaying process. + (if procwin + (push window (cdr procwin)) + (push (list process window) process-windows)) + ;; We found our process for this window, so + ;; stop iterating over the process list. + nil) + (setf iter (cdr iter))))))) + 1 t)) process-windows)) (defun window--adjust-process-windows () -- 2.39.2