diff options
| author | Kenichi Handa | 2012-10-11 20:29:47 +0900 |
|---|---|---|
| committer | Kenichi Handa | 2012-10-11 20:29:47 +0900 |
| commit | d3e4228575e9ba9e99dc4a7dae788280ffcc4566 (patch) | |
| tree | 97d35f3c0766372c166a31f3c0f7aba791a38dde /src/alloc.c | |
| parent | cde44a7728488ca6bc6a46c18d9c5e647b160547 (diff) | |
| parent | fd2f90cf5c6a15610aa1e17e73d6d8a5f8cb1999 (diff) | |
| download | emacs-d3e4228575e9ba9e99dc4a7dae788280ffcc4566.tar.gz emacs-d3e4228575e9ba9e99dc4a7dae788280ffcc4566.zip | |
merge trunk
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/alloc.c b/src/alloc.c index 3ed8cc2d990..95be8db1614 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -5689,7 +5689,7 @@ mark_object (Lisp_Object arg) | |||
| 5689 | pvectype = ((ptr->header.size & PVEC_TYPE_MASK) | 5689 | pvectype = ((ptr->header.size & PVEC_TYPE_MASK) |
| 5690 | >> PSEUDOVECTOR_SIZE_BITS); | 5690 | >> PSEUDOVECTOR_SIZE_BITS); |
| 5691 | else | 5691 | else |
| 5692 | pvectype = 0; | 5692 | pvectype = PVEC_NORMAL_VECTOR; |
| 5693 | 5693 | ||
| 5694 | if (pvectype != PVEC_SUBR && pvectype != PVEC_BUFFER) | 5694 | if (pvectype != PVEC_SUBR && pvectype != PVEC_BUFFER) |
| 5695 | CHECK_LIVE (live_vector_p); | 5695 | CHECK_LIVE (live_vector_p); |
| @@ -6311,19 +6311,14 @@ gc_sweep (void) | |||
| 6311 | 6311 | ||
| 6312 | /* Free all unmarked buffers */ | 6312 | /* Free all unmarked buffers */ |
| 6313 | { | 6313 | { |
| 6314 | register struct buffer *buffer = all_buffers, *prev = 0, *next; | 6314 | register struct buffer *buffer, **bprev = &all_buffers; |
| 6315 | 6315 | ||
| 6316 | total_buffers = 0; | 6316 | total_buffers = 0; |
| 6317 | while (buffer) | 6317 | for (buffer = all_buffers; buffer; buffer = *bprev) |
| 6318 | if (!VECTOR_MARKED_P (buffer)) | 6318 | if (!VECTOR_MARKED_P (buffer)) |
| 6319 | { | 6319 | { |
| 6320 | if (prev) | 6320 | *bprev = buffer->header.next.buffer; |
| 6321 | prev->header.next = buffer->header.next; | ||
| 6322 | else | ||
| 6323 | all_buffers = buffer->header.next.buffer; | ||
| 6324 | next = buffer->header.next.buffer; | ||
| 6325 | lisp_free (buffer); | 6321 | lisp_free (buffer); |
| 6326 | buffer = next; | ||
| 6327 | } | 6322 | } |
| 6328 | else | 6323 | else |
| 6329 | { | 6324 | { |
| @@ -6331,7 +6326,7 @@ gc_sweep (void) | |||
| 6331 | /* Do not use buffer_(set|get)_intervals here. */ | 6326 | /* Do not use buffer_(set|get)_intervals here. */ |
| 6332 | buffer->text->intervals = balance_intervals (buffer->text->intervals); | 6327 | buffer->text->intervals = balance_intervals (buffer->text->intervals); |
| 6333 | total_buffers++; | 6328 | total_buffers++; |
| 6334 | prev = buffer, buffer = buffer->header.next.buffer; | 6329 | bprev = &buffer->header.next.buffer; |
| 6335 | } | 6330 | } |
| 6336 | } | 6331 | } |
| 6337 | 6332 | ||