From: Dima Kogan <lists@dima.secretsauce.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: eggert@cs.ucla.edu, emacs-devel@gnu.org
Subject: Re: Debugging emacs memory management
Date: Mon, 05 Oct 2015 02:49:11 -0700 [thread overview]
Message-ID: <87bncd1w88.fsf@secretsauce.net> (raw)
In-Reply-To: <87d1wt1xe0.fsf@secretsauce.net>
Dima Kogan <lists@dima.secretsauce.net> writes:
> Making copy_font_spec() a deep copy probably would resolve this.
> Trying that now.
Aaand, that works. The leak went down from 24KB/frame to 12KB/frame.
Patch below. I'm not as familiar with lisp as I should probably be, so
there's probably a nicer way for this patch to have been written.
diff --git a/src/font.c b/src/font.c
index 8e06532..ca872d0 100644
--- a/src/font.c
+++ b/src/font.c
@@ -3981,7 +3981,15 @@ copy_font_spec (Lisp_Object font)
pcdr = spec->props + FONT_EXTRA_INDEX;
for (tail = AREF (font, FONT_EXTRA_INDEX); CONSP (tail); tail = XCDR (tail))
if (!EQ (XCAR (XCAR (tail)), QCfont_entity))
- *pcdr = Fcons (XCAR (tail), Qnil), pcdr = xcdr_addr (*pcdr);
+ {
+ if (CONSP (XCAR (tail)))
+ *pcdr = Fcons (Fcons( XCAR (XCAR (tail)),
+ XCDR (XCAR (tail))),
+ Qnil);
+ else
+ *pcdr = Fcons (XCAR (tail), Qnil);
+ pcdr = xcdr_addr (*pcdr);
+ }
XSETFONT (new_spec, spec);
return new_spec;
next prev parent reply other threads:[~2015-10-05 9:49 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-11 6:01 Debugging emacs memory management Dima Kogan
2015-02-11 15:05 ` Stefan Monnier
2015-02-15 20:28 ` Dima Kogan
2015-02-15 20:47 ` Eli Zaretskii
2015-02-16 1:39 ` Stefan Monnier
2015-02-17 7:59 ` Dima Kogan
2015-02-17 15:59 ` Eli Zaretskii
2015-02-18 0:07 ` Stefan Monnier
2015-02-11 19:07 ` Florian Weimer
2015-09-15 19:27 ` Dima Kogan
2015-09-16 16:28 ` Paul Eggert
2015-09-20 22:01 ` Dima Kogan
2015-09-21 6:46 ` Eli Zaretskii
2015-09-21 8:54 ` Dima Kogan
2015-09-21 10:00 ` Eli Zaretskii
2015-09-21 10:21 ` Eli Zaretskii
2015-09-22 21:33 ` Dima Kogan
2015-09-23 6:35 ` Eli Zaretskii
2015-09-23 6:37 ` Dima Kogan
2015-09-23 7:16 ` Eli Zaretskii
2015-10-05 7:21 ` Dima Kogan
2015-10-05 7:55 ` Eli Zaretskii
2015-10-05 8:24 ` Dima Kogan
2015-10-05 8:33 ` Eli Zaretskii
2015-10-05 8:43 ` Eli Zaretskii
2015-10-05 9:24 ` Dima Kogan
2015-10-05 9:49 ` Dima Kogan [this message]
2015-10-05 9:58 ` Andreas Schwab
2015-10-05 10:02 ` Dima Kogan
2015-10-05 10:47 ` Eli Zaretskii
2015-10-05 18:19 ` Dima Kogan
2015-10-05 18:24 ` Eli Zaretskii
2015-10-05 23:21 ` Dima Kogan
2015-10-06 2:41 ` Eli Zaretskii
2015-10-08 21:51 ` Dima Kogan
2015-09-16 16:34 ` Davis Herring
2015-09-16 22:03 ` Markus Triska
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bncd1w88.fsf@secretsauce.net \
--to=lists@dima.secretsauce.net \
--cc=eggert@cs.ucla.edu \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.