]> code.delx.au - gnu-emacs/commitdiff
(mark_object, mark_buffer): Don't mark buffer twice.
authorKarl Heuer <kwzh@gnu.org>
Wed, 4 Jan 1995 22:43:47 +0000 (22:43 +0000)
committerKarl Heuer <kwzh@gnu.org>
Wed, 4 Jan 1995 22:43:47 +0000 (22:43 +0000)
src/alloc.c

index 4fe59ae93463bbb1b84d1e77e5096d90ee0d066c..044356914e5637354bb9eb72377772f965f0117b 100644 (file)
@@ -1524,7 +1524,10 @@ mark_object (objptr)
 
     case Lisp_Vectorlike:
       if (GC_BUFFERP (obj))
-       mark_buffer (obj);
+       {
+         if (!XMARKBIT (XBUFFER (obj)->name))
+           mark_buffer (obj);
+       }
       else if (GC_SUBRP (obj))
        break;
       else if (GC_COMPILEDP (obj))
@@ -1753,7 +1756,7 @@ mark_buffer (buf)
     mark_object (ptr);
 
   /* If this is an indirect buffer, mark its base buffer.  */
-  if (buffer->base_buffer)
+  if (buffer->base_buffer && !XMARKBIT (buffer->base_buffer->name))
     {
       XSETBUFFER (base_buffer, buffer->base_buffer); 
       mark_buffer (base_buffer);