From: martin rudalics <rudalics@gmx.at>
To: "Peter Münster" <pmlists@free.fr>, "Eli Zaretskii" <eliz@gnu.org>
Cc: larsi@gnus.org, 18522@debbugs.gnu.org
Subject: bug#18522: 24.4.50; mapcar is very slow
Date: Thu, 25 Feb 2016 11:06:32 +0100 [thread overview]
Message-ID: <56CED228.70201@gmx.at> (raw)
In-Reply-To: <87d1rli56w.fsf@roche-blanche.net>
[-- Attachment #1: Type: text/plain, Size: 127 bytes --]
> Could you provide some code please, to show the names?
Try ‘killed-buffer-names’ from the attached patch.
martin
[-- Attachment #2: killed-buffer-names.diff --]
[-- Type: text/plain, Size: 2391 bytes --]
diff --git a/src/buffer.c b/src/buffer.c
index 653e3fe..c8cec8c 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -287,6 +287,8 @@ static void
bset_name (struct buffer *b, Lisp_Object val)
{
b->name_ = val;
+ if (!NILP (val))
+ b->live_name_ = val;
}
static void
bset_overwrite_mode (struct buffer *b, Lisp_Object val)
@@ -415,6 +417,21 @@ followed by the rest of the buffers. */)
return general;
}
+DEFUN ("killed-buffer-names", Fkilled_buffer_names, Skilled_buffers_names, 0, 0, 0,
+ doc: /* Return list of names of killed buffers that have not been recycled yet. */)
+ ()
+{
+ struct buffer *b;
+ Lisp_Object val = Qnil;
+
+ FOR_EACH_BUFFER (b)
+ if (NILP (b->name_))
+ val = Fcons (b->live_name_, val);
+
+ return val;
+}
+
+
/* Like Fassoc, but use Fstring_equal to compare
(which ignores text properties),
and don't ever QUIT. */
@@ -1103,6 +1120,14 @@ Return nil if BUFFER has been killed. */)
return BVAR (decode_buffer (buffer), name);
}
+DEFUN ("buffer-live-name", Fbuffer_live_name, Sbuffer_live_name, 0, 1, 0,
+ doc: /* Return the name of BUFFER when it was live, as a string.
+ BUFFER defaults to the current buffer. */)
+ (register Lisp_Object buffer)
+{
+ return BVAR (decode_buffer (buffer), live_name);
+}
+
DEFUN ("buffer-file-name", Fbuffer_file_name, Sbuffer_file_name, 0, 1, 0,
doc: /* Return name of file BUFFER is visiting, or nil if none.
No argument or nil as argument means use the current buffer. */)
@@ -6278,12 +6303,14 @@ Functions running this hook are, `get-buffer-create',
defsubr (&Sbuffer_live_p);
defsubr (&Sbuffer_list);
+ defsubr (&Skilled_buffers_names);
defsubr (&Sget_buffer);
defsubr (&Sget_file_buffer);
defsubr (&Sget_buffer_create);
defsubr (&Smake_indirect_buffer);
defsubr (&Sgenerate_new_buffer_name);
defsubr (&Sbuffer_name);
+ defsubr (&Sbuffer_live_name);
defsubr (&Sbuffer_file_name);
defsubr (&Sbuffer_base_buffer);
defsubr (&Sbuffer_local_value);
diff --git a/src/buffer.h b/src/buffer.h
index 5783bfb..24bbcb3 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -500,6 +500,9 @@ struct buffer
/* The name of this buffer. */
Lisp_Object name_;
+ /* The name of this buffer when it was live. */
+ Lisp_Object live_name_;
+
/* The name of the file visited in this buffer, or nil. */
Lisp_Object filename_;
prev parent reply other threads:[~2016-02-25 10:06 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-22 10:37 bug#18522: 24.4.50; mapcar is very slow Peter Münster
2014-09-22 10:43 ` bug#18522: further information Peter Münster
2014-09-22 12:49 ` bug#18522: 24.4.50; mapcar is very slow Stefan Monnier
2014-09-22 13:47 ` Peter Münster
2014-09-25 21:36 ` Peter Münster
2014-09-26 6:57 ` Eli Zaretskii
2014-09-26 7:15 ` Peter Münster
2014-09-26 7:36 ` Eli Zaretskii
2014-10-01 19:55 ` Peter Münster
2014-10-01 19:58 ` Glenn Morris
2014-10-01 20:25 ` Peter Münster
2015-02-13 8:26 ` Lars Ingebrigtsen
2015-02-13 14:39 ` Peter Münster
2015-02-14 4:19 ` Lars Ingebrigtsen
2015-03-02 14:34 ` Peter Münster
2015-07-20 12:52 ` Peter Münster
2016-02-07 6:31 ` Lars Ingebrigtsen
2016-02-17 16:00 ` Peter Münster
2016-02-19 5:15 ` Lars Ingebrigtsen
2016-02-19 8:27 ` Peder O. Klingenberg
2016-02-19 8:38 ` Eli Zaretskii
2016-02-19 10:06 ` Nicolas Richard
2016-02-19 10:12 ` Peder O. Klingenberg
2016-02-19 22:46 ` Lars Ingebrigtsen
2016-02-20 8:14 ` Eli Zaretskii
2016-02-20 8:33 ` Peter Münster
2016-02-20 9:51 ` Eli Zaretskii
2016-02-21 11:00 ` Peter Münster
2016-02-21 11:08 ` Andreas Schwab
2016-02-21 11:09 ` martin rudalics
2016-02-21 11:30 ` Peter Münster
2016-02-21 13:41 ` Michael Heerdegen
2016-02-21 14:02 ` Peter Münster
2016-02-21 14:36 ` Peter Münster
2016-02-21 14:54 ` Peter Münster
2016-02-21 16:14 ` Eli Zaretskii
2016-02-21 18:03 ` Peter Münster
2016-02-21 20:45 ` Eli Zaretskii
2016-02-22 7:37 ` Peter Münster
2016-02-22 16:22 ` Eli Zaretskii
2016-02-22 20:41 ` Peter Münster
2016-02-22 20:56 ` Eli Zaretskii
2016-02-23 11:19 ` Peter Münster
2016-02-23 16:23 ` Eli Zaretskii
2016-02-23 16:35 ` Peter Münster
2016-02-23 16:48 ` Andreas Schwab
2016-02-24 10:22 ` Peter Münster
2016-02-23 17:47 ` Eli Zaretskii
2016-02-24 10:25 ` Peter Münster
2016-02-24 17:39 ` Eli Zaretskii
2016-02-24 18:00 ` Peter Münster
2016-02-24 18:23 ` Eli Zaretskii
2016-02-24 20:03 ` Peter Münster
2016-02-24 20:26 ` Eli Zaretskii
2016-02-25 8:06 ` Peter Münster
2016-02-24 23:53 ` Lars Ingebrigtsen
2016-02-25 8:08 ` Peter Münster
2016-02-25 15:59 ` Eli Zaretskii
2016-02-25 18:10 ` Peter Münster
2016-02-25 18:25 ` Eli Zaretskii
2016-02-26 11:05 ` Peter Münster
2016-02-26 11:13 ` Eli Zaretskii
2016-02-26 11:35 ` Peter Münster
2016-02-28 4:10 ` Lars Ingebrigtsen
2016-02-28 8:07 ` Peter Münster
2016-02-28 15:48 ` Eli Zaretskii
2016-02-29 2:21 ` Lars Ingebrigtsen
2016-02-29 10:33 ` bug#18522: killed buffers not GCed (was: bug#18522: 24.4.50; mapcar is very slow) Peter Münster
2016-02-28 5:12 ` bug#18522: 24.4.50; mapcar is very slow Lars Ingebrigtsen
2016-02-26 3:18 ` Lars Ingebrigtsen
2016-02-26 3:13 ` Lars Ingebrigtsen
2016-02-26 8:48 ` Eli Zaretskii
2016-02-28 4:02 ` Lars Ingebrigtsen
2016-02-26 9:28 ` Eli Zaretskii
2016-02-28 4:04 ` Lars Ingebrigtsen
2017-01-25 20:09 ` Lars Ingebrigtsen
2017-01-25 20:39 ` Peter Münster
2016-02-24 10:15 ` martin rudalics
2016-02-24 17:42 ` Eli Zaretskii
2016-02-24 18:16 ` martin rudalics
2016-02-24 18:49 ` martin rudalics
2016-02-24 20:27 ` Eli Zaretskii
2016-02-25 8:07 ` Peter Münster
2016-02-25 10:06 ` martin rudalics [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56CED228.70201@gmx.at \
--to=rudalics@gmx.at \
--cc=18522@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=larsi@gnus.org \
--cc=pmlists@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).