Subject: Re: bug#24368: 25.1; Assertion failure in attach_marker

From: martin rudalics <[email-masked]>
Date: Mon, 05 Sep 2016 16:30:42 +0200

The reason behind this bug is the following construct in
‘window--state-get-1’:

             ,@(when buffer
                 ;; All buffer related things go in here.
		(let ((point (window-point window))
		      (start (window-start window)))
		  `((buffer
		     ,(buffer-name buffer)
		     (selected . ,selected)
		     (hscroll . ,(window-hscroll window))
		     (fringes . ,(window-fringes window))
		     (margins . ,(window-margins window))
		     (scroll-bars . ,(window-scroll-bars window))
		     (vscroll . ,(window-vscroll window))
		     (dedicated . ,(window-dedicated-p window))
		     (point . ,(if writable point
                                  (copy-marker point
                                               (buffer-local-value
                                                'window-point-insertion-type
                                                buffer))))
		     (start . ,(if writable start (copy-marker start)))))))))

This saves `point' and `start' as markers in the wrong buffer - in my
example *help* and not *scratch*.  A silly bug but I don't even know how
to put in a ‘with-current-buffer’ with all those backslashes :-(

The ensuing assertion failure should not happen though - somehow we
don't recognize that we set a marker in the wrong buffer.

martin