]> code.delx.au - gnu-emacs/commitdiff
(Fmarker_buffer): Make test for odd case into a failure.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 2 Oct 2007 21:05:39 +0000 (21:05 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 2 Oct 2007 21:05:39 +0000 (21:05 +0000)
src/marker.c

index a57dafa3f3b2ac00d4c6a533722cadba566a4857..0c89f71d79ab0292b2ec3c19fc883960ec2fa28d 100644 (file)
@@ -452,9 +452,12 @@ Returns nil if MARKER points into a dead buffer.  */)
   if (XMARKER (marker)->buffer)
     {
       XSETBUFFER (buf, XMARKER (marker)->buffer);
-      /* Return marker's buffer only if it is not dead.  */
-      if (!NILP (XBUFFER (buf)->name))
-       return buf;
+      /* If the buffer is dead, we're in trouble: the buffer pointer here
+        does not preserve the buffer from being GC'd (it's weak), so
+        markers have to be unlinked from their buffer as soon as the buffer
+        is killed.  */
+      eassert (!NILP (XBUFFER (buf)->name));
+      return buf;
     }
   return Qnil;
 }