From: Kenichi Handa <handa@m17n.org>
To: Jason Rumney <jasonr@gnu.org>, 3208@emacsbugs.donarmstrong.com
Cc: schierlm@gmx.de
Subject: bug#3208: 23.0.93; Memory full / crash when displaying lots of characters from a large font (like Arial Unicode or Code2000) which is not explicitly selected (on Win32)
Date: Tue, 19 May 2009 11:13:31 +0900 [thread overview]
Message-ID: <E1M6Epf-0003UC-Jj@etlken> (raw)
In-Reply-To: <4A005A64.5050908@gnu.org> (message from Jason Rumney on Tue, 05 May 2009 23:25:24 +0800)
In article <4A005A64.5050908@gnu.org>, Jason Rumney <jasonr@gnu.org> writes:
> Michael Schierl wrote:
> > - It is easier if you have one of the fonts Code2000 or Arial Unicode
> > installed. I tried it with fonts that come with Windows XP (like
> > Lucida Sans Unicode) but did not succeed in reproducing the bug.
> > It might happen with other fonts as well, most likely ones that have
> > lots of glyphs.
> > - You need to know a character that is in your font but not in the
> > default font (0x2203 works for both Arial Unicode and Code2000, 0x2202
> > would work for Lucida Sans Unicode, 0xFFFD works for Arial Unicode).
> > - Start emacs -Q
> > - Insert a few thousand characters of that kind, and move to the
> > beginning and to the end of the buffer repeatedly. At first you
> > receive warnings like "Emergency (alloc): Warning: past 95% of memory
> > limit", then the memory is exhausted, and if you still go on, you will
> > be asked if you want to debug Emacs. This is perfectly reproducable
> > for me, both on my main machine and on a freshly installed WinXP
> > virtual machine where I only added Emacs and one of the fonts.
> >
> I can reproduce this. The malloc warnings always seem to occur in the
> SAFE_ALLOCA call in font_sort_entities. The vec passed in to that
> function contains all the fonts on my system, and len is over 3000,
> requiring 24kB to be allocated. There appear to be two bugs here.
> One is that this function is being called all the time when we have
> already found a font for the character we added to the buffer.
Oops, I've just fixed this typo:
font_sort_entites -> font_sort_entities
Anyway, font_sort_entities is called from
font_find_for_lface (via font_select_entity).
Could you please find why font_find_for_lface is called so
releatedly by setting breakpoint in fontset_find_font (with
condition "c == 0x2203)?
> The other is that SAFE_FREE does not appear to call xfree to free the
> memory that SAFE_ALLOCA allocated with xmalloc. Maybe SAFE_ALLOCA is not
> used often to allocate more than 16kB (the threshold for using the heap
> instead of the stack) so this has gone unnoticed in the past.
SAFE_FREE surely calls xfree via unbind_to because
SAFE_ALLOCA calls record_unwind_protect with
safe_alloca_unwind.
---
Kenichi Handa
handa@m17n.org
next prev parent reply other threads:[~2009-05-19 2:13 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4AAF9D6C.1040303@gnu.org>
2009-05-04 18:26 ` bug#3208: 23.0.93; Memory full / crash when displaying lots of characters from a large font (like Arial Unicode or Code2000) which is not explicitly selected (on Win32) Michael Schierl
2009-05-05 15:25 ` Jason Rumney
2009-05-05 15:46 ` Jason Rumney
2009-05-19 2:13 ` Kenichi Handa [this message]
2009-06-18 5:29 ` Jason Rumney
2009-06-22 5:47 ` Jason Rumney
2009-06-22 11:22 ` Kenichi Handa
2009-06-22 11:51 ` Jason Rumney
2009-06-22 12:51 ` Kenichi Handa
2009-06-22 13:05 ` Jason Rumney
2009-06-22 14:01 ` bug#3650: M-x gdb unusable on Windows Jason Rumney
2009-06-23 1:59 ` Kenichi Handa
2009-06-23 3:37 ` Dan Nicolaescu
2009-06-23 6:22 ` Nick Roberts
2009-06-23 7:38 ` Kenichi Handa
2009-06-23 6:09 ` Nick Roberts
2009-06-23 7:59 ` Jason Rumney
2009-06-23 13:22 ` Kenichi Handa
2009-06-23 17:08 ` Dan Nicolaescu
2009-06-25 5:50 ` Kenichi Handa
2009-06-25 6:13 ` Nick Roberts
2009-06-25 7:51 ` Kenichi Handa
2019-11-02 6:04 ` Stefan Kangas
2019-11-02 8:41 ` Eli Zaretskii
2022-04-13 0:40 ` Lars Ingebrigtsen
2009-06-24 4:26 ` bug#3208: 23.0.93; Memory full / crash when displaying lots of characters from a large font (like Arial Unicode or Code2000) which is not explicitly selected (on Win32) Kenichi Handa
2009-06-24 10:37 ` Jason Rumney
2009-06-24 11:45 ` Kenichi Handa
2009-06-24 10:43 ` Jason Rumney
2009-06-24 11:55 ` Kenichi Handa
[not found] ` <4A422909.9060800@gnu.org>
2009-06-25 8:10 ` Kenichi Handa
2009-06-25 13:21 ` Jason Rumney
2009-06-26 1:26 ` Kenichi Handa
2009-06-26 5:54 ` Jason Rumney
2009-06-26 13:12 ` Kenichi Handa
2009-07-02 12:13 ` Kenichi Handa
2009-07-02 21:36 ` Stefan Monnier
2009-07-03 2:11 ` Kenichi Handa
2009-09-15 14:05 ` bug#3208: marked as done (23.0.93; Memory full / crash when displaying lots of characters from a large font (like Arial Unicode or Code2000) which is not explicitly selected (on Win32)) Emacs bug Tracking System
2009-05-06 23:11 bug#3208: 23.0.93; Memory full / crash when displaying lots of characters from a large font (like Arial Unicode or Code2000) which is not explicitly selected (on Win32) Chong Yidong
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=E1M6Epf-0003UC-Jj@etlken \
--to=handa@m17n.org \
--cc=3208@emacsbugs.donarmstrong.com \
--cc=jasonr@gnu.org \
--cc=schierlm@gmx.de \
/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).