unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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






  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).