Subject: bug#32850: 27.0.50; window-swap-states doesn't swap window prev/next-buffers

From: Juri Linkov <[email-masked]>
Date: Fri, 19 Oct 2018 02:18:25 +0300

>> This patch handles killed buffers, so it works for desktop saving as well
>> (because the desktop restores the frameset only after it reads all buffers):
>
> Please install so we can see whether there are any problems (in
> particular with the desktop which I don't use).

I found a problem, it occurs very rarely:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  get-buffer(nil)
  #f(compiled-function (entry) #<bytecode 0x22c739>)((nil nil nil))
  mapcar(#f(compiled-function (entry) #<bytecode 0x22c739>) (("*Group*" 1 139) (nil nil nil) ("*sent reply to martin rudalics*" 1 1090)))
  window--state-put-2(safe 737)
  window-state-put(...)

Do you have an idea how did (nil nil nil) find its way into the list of
prev-buffers?  (window-state-get was used with the non-nil WRITABLE arg)