aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorKarl Heuer1995-01-04 22:43:47 +0000
committerKarl Heuer1995-01-04 22:43:47 +0000
commit6b552283ca1bcddec62f572d48e1d25faa64d2d0 (patch)
tree85a5eae8904bf8a0bd93aed6e3d6753a1284364e /src/alloc.c
parent177efd15635f88108eac2d34d251ad0ca09ad79f (diff)
downloademacs-6b552283ca1bcddec62f572d48e1d25faa64d2d0.tar.gz
emacs-6b552283ca1bcddec62f572d48e1d25faa64d2d0.zip
(mark_object, mark_buffer): Don't mark buffer twice.
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 4fe59ae9346..044356914e5 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1524,7 +1524,10 @@ mark_object (objptr)
1524 1524
1525 case Lisp_Vectorlike: 1525 case Lisp_Vectorlike:
1526 if (GC_BUFFERP (obj)) 1526 if (GC_BUFFERP (obj))
1527 mark_buffer (obj); 1527 {
1528 if (!XMARKBIT (XBUFFER (obj)->name))
1529 mark_buffer (obj);
1530 }
1528 else if (GC_SUBRP (obj)) 1531 else if (GC_SUBRP (obj))
1529 break; 1532 break;
1530 else if (GC_COMPILEDP (obj)) 1533 else if (GC_COMPILEDP (obj))
@@ -1753,7 +1756,7 @@ mark_buffer (buf)
1753 mark_object (ptr); 1756 mark_object (ptr);
1754 1757
1755 /* If this is an indirect buffer, mark its base buffer. */ 1758 /* If this is an indirect buffer, mark its base buffer. */
1756 if (buffer->base_buffer) 1759 if (buffer->base_buffer && !XMARKBIT (buffer->base_buffer->name))
1757 { 1760 {
1758 XSETBUFFER (base_buffer, buffer->base_buffer); 1761 XSETBUFFER (base_buffer, buffer->base_buffer);
1759 mark_buffer (base_buffer); 1762 mark_buffer (base_buffer);