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

From: martin rudalics <[email-masked]>
Date: Mon, 27 Nov 2017 09:50:17 +0100

> When a buffer is deleted, all the markers that point to it get their
 > buffer wiped out, so I think the above method cannot work, unless you
 > replace all NULL buffer pointers with the cloned buffer -- which will
 > probably be too much.
 >
 > And remember that markers without any buffer do not get adjusted, so
 > their position will quickly become incorrect or even outside the
 > cloned buffer's text, and then such markers will become useless.  So
 > we cannot delay this until the marker is accessed by some Lisp.

Note that I've been referring only to your earlier

   The problem I was thinking of is when buffer-local variables in buffer
   A hold markers whose buffer is A; then we clone buffer B from A, and
   then we kill buffer A.  Now the markers in the cloned buffer point to
   a dead buffer (or actually point nowhere).

I'm not sure why this can be a problem because when we delete a base
buffer then the manual says that

   Killing the base buffer effectively kills the indirect buffer in that
   it cannot ever again be the current buffer.

but in fact we kill any indirect buffer before killing its base buffer.
Or I'm misreading the code of `kill-buffer'

martin