[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Reachable killed buffers
From: |
Stefan Monnier |
Subject: |
Re: Reachable killed buffers |
Date: |
Tue, 11 Sep 2012 09:06:52 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux) |
> IIUC both BLVs and frame/window buffer lists aren't shared. So, marking
> traversal which sees an owner symbol/frame/window for the first time
> sees these objects for the first time too (thus mark them correctly).
> And even we change buffer list or BLV so the marked object becomes
> unreachable, we just create some floating garbage which survives current
> GC but will be reclaimed during the next one.
The part where it gets less obvious is that swap_in_global_binding
doesn't only modify the BLV struct but also the C variable pointed to by
the `fwd' field and that variable is marked from elsewhere (staticpro,
for example).
As I said, I still think it's safe because we know the values we assign
there will be marked "real soon now" (via the "mark_object
(blv->defcell)" for example).
BTW, the "FIXME: make sure it's safe during GC." you placed before the
call to swap_in_global_binding should be turned into a "BEWARE: this is
called during GC, so make sure we ..." placed within swap_in_global_binding.
>> I don't see any reason to remove the previous comment since the change
>> doesn't affect its validity.
> IIUC this comment is partially invalid since lisp.h comment says that
> Lisp_Buffer_Local_Value can't be forwarded to buffer or kboard object
> (and this is really so).
Good point, yes, thanks for updating the comment.
Stefan
- Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109890: Do not mark objects from deleted buffers, windows and frames., (continued)
- Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109890: Do not mark objects from deleted buffers, windows and frames., Dmitry Antipov, 2012/09/06
- Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109890: Do not mark objects from deleted buffers, windows and frames., Stefan Monnier, 2012/09/06
- Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109890: Do not mark objects from deleted buffers, windows and frames., martin rudalics, 2012/09/07
- Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109890: Do not mark objects from deleted buffers, windows and frames., Stefan Monnier, 2012/09/07
- Reachable killed buffers [Was: Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109890: Do not mark objects from deleted buffers, windows and frames], Dmitry Antipov, 2012/09/10
- Re: Reachable killed buffers [Was: Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109890: Do not mark objects from deleted buffers, windows and frames], Stefan Monnier, 2012/09/10
- Re: Reachable killed buffers, Dmitry Antipov, 2012/09/10
- Re: Reachable killed buffers, Stefan Monnier, 2012/09/10
- Re: Reachable killed buffers, Stefan Monnier, 2012/09/10
- Re: Reachable killed buffers, Dmitry Antipov, 2012/09/11
- Re: Reachable killed buffers,
Stefan Monnier <=
- Re: Reachable killed buffers, martin rudalics, 2012/09/12
- Re: Reachable killed buffers, Paul Eggert, 2012/09/12
- Re: Reachable killed buffers, Dmitry Antipov, 2012/09/12
- Re: Reachable killed buffers, Paul Eggert, 2012/09/12
- Re: Reachable killed buffers, martin rudalics, 2012/09/12
- Re: Reachable killed buffers, Dmitry Antipov, 2012/09/12
- Re: Reachable killed buffers, martin rudalics, 2012/09/12
- Re: Reachable killed buffers, Paul Eggert, 2012/09/12
- Re: Reachable killed buffers, Stefan Monnier, 2012/09/12
- Re: Reachable killed buffers, Paul Eggert, 2012/09/13