Subject: Re: bug#17893: 24.4.50; (error "Marker does not point anywhere")

From: [email-masked] (Charles A. Roelli)
Date: Tue, 14 Nov 2017 20:56:58 +0100

> From: Stefan Monnier <[email-masked]>
> Cc: Drew Adams <[email-masked]>,  [email-masked]
> Date: Sun, 12 Nov 2017 16:03:09 -0500
> 
> > The error happens when the marker at the head of the mark ring no
> > longer points into a buffer.
> 
> Hmm... mark-ring is buffer-local, so the marks in there should all point
> to current-buffer.  Can you try and figure out why this is not the case?

I was not careful to make sure that the mark-ring contains valid
markers, so it may be an error in my code.  On the other hand, looking
at the definition of `clone-buffer' (which my patch uses), I don't see
anything that would update the markers of the mark-ring in the newly
cloned buffer to point to the new buffer instead of the old one.
Maybe that is also a problem?  And it doesn't help that I find my code
incredibly hard to read one month on...

Drew's problem is probably related to clone-buffer, especially seeing
as he saw the issue right after having hit M-n in an Info mode buffer:

  M-n runs the command clone-buffer (found in Info-mode-map), which is
  an interactive compiled Lisp function in ‘simple.el’.

  It is bound to M-n, <menu-bar> <Info> <Clone Info buffer>.

  (clone-buffer &optional NEWNAME DISPLAY-FLAG)

Ah, turns out that's how you replicate this bug.

1. C-h i
2. Click/drag a few times in the *info* buffer to set some marks
3. M-n C-x o C-x k RET
4. Click in the remaining *info*<2> buffer:

  set-transient-map PCH: (error "Marker does not point anywhere")