diff options
author | Karl Heuer <kwzh@gnu.org> | 1995-01-04 22:43:47 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1995-01-04 22:43:47 +0000 |
commit | b2c009cd00859d07a6dedd73c1cf7d990eaf3765 (patch) | |
tree | db0b2e8a648271412e396a0c8672df507440ed59 /src/alloc.c | |
parent | bf39ca65ea90863495dab39f6648b7c2aa951ec0 (diff) | |
download | emacs-b2c009cd00859d07a6dedd73c1cf7d990eaf3765.tar.gz |
(mark_object, mark_buffer): Don't mark buffer twice.
Diffstat (limited to 'src/alloc.c')
-rw-r--r-- | src/alloc.c | 7 |
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) 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); |