From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/18022 Path: main.gmane.org!not-for-mail From: Lloyd Zusman Newsgroups: gmane.emacs.gnus.general Subject: Re: *Group* buffer disaster fix Date: 21 Oct 1998 13:06:46 -400 Sender: owner-ding@hpc.uh.edu Message-ID: References: NNTP-Posting-Host: coloc-standby.netfonds.no X-Trace: main.gmane.org 1035156619 3983 80.91.224.250 (20 Oct 2002 23:30:19 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sun, 20 Oct 2002 23:30:19 +0000 (UTC) Cc: Hrvoje Niksic Return-Path: Original-Received: from fisher.math.uh.edu (fisher.math.uh.edu [129.7.128.35]) by sclp3.sclp.com (8.8.5/8.8.5) with ESMTP id NAA27920 for ; Wed, 21 Oct 1998 13:07:36 -0400 (EDT) Original-Received: from sina.hpc.uh.edu (lists@Sina.HPC.UH.EDU [129.7.3.5]) by fisher.math.uh.edu (8.9.1/8.9.1) with ESMTP id MAB18428; Wed, 21 Oct 1998 12:07:21 -0500 (CDT) Original-Received: by sina.hpc.uh.edu (TLB v0.09a (1.20 tibbs 1996/10/09 22:03:07)); Wed, 21 Oct 1998 12:07:17 -0500 (CDT) Original-Received: from sclp3.sclp.com (root@sclp3.sclp.com [209.195.19.139]) by sina.hpc.uh.edu (8.7.3/8.7.3) with ESMTP id MAA27001 for ; Wed, 21 Oct 1998 12:07:08 -0500 (CDT) Original-Received: from ljz.asfast.net (gnus@ljz.asfast.net [205.230.75.82]) by sclp3.sclp.com (8.8.5/8.8.5) with ESMTP id NAA27908 for ; Wed, 21 Oct 1998 13:06:54 -0400 (EDT) Original-Received: (from gnus@localhost) by ljz.asfast.net (8.8.7/8.8.7) id NAA14693; Wed, 21 Oct 1998 13:06:47 -0400 Original-To: ding@gnus.org X-Face: "!ga1s|?LNLE3MeeeEYs(%LIl9q[xV9!j4#xf4!**BFW_ihlOb;:Slb>)vy>CJM writes: > [ ... ] > > Why do we need to do a `kill-buffer' in this routine at all when > > `(mapcar 'mm-destroy-part gnus-article-mime-handles)' is already > > being done within `gnus-summary-exit' and `gnus-group-exit-hook'? > > Because we want the "*mm*" buffer to go away as soon as we're done > with it. Also, the code killing the buffer was already there -- no > `+' before it. I only added the unwind-protect bit. I know that you didn't add the `kill-buffer'. I was wondering if the `mapcar' that gets invoked later might break something, since the reference to the ` *mm*' buffer will be put into the mime handle alist for future deletion, even though that buffer gets killed here. However, I just now figured out that this is probably not a problem, since `mm-destroy-part' only does a `kill-buffer' if `buffer-live-p' succeeds on the buffer referenced in this alist. Hence, in this case, we're safe to do the `kill-buffer' on the ` *mm*' buffer *and* to add a reference to this killed buffer to the alist. Now, as long as we're sure that no other code tries to do something to this killed `* mm*' buffer in the alist prior to the `mapcar' call, then we're OK. -- Lloyd Zusman ljz@asfast.com