bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#1070: marked as done (Looping in redisplay due to font problem)


From: Emacs bug Tracking System
Subject: bug#1070: marked as done (Looping in redisplay due to font problem)
Date: Thu, 9 Oct 2008 09:50:03 -0700

Your message dated Thu, 09 Oct 2008 12:45:45 -0400
with message-id <873aj5lnt2.fsf@cyd.mit.edu>
and subject line Re: Looping in redisplay due to font problem
has caused the Emacs bug report #1070,
regarding Looping in redisplay due to font problem
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact don@donarmstrong.com
immediately.)


-- 
1070: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1070
Emacs Bug Tracking System
Contact don@donarmstrong.com with problems
--- Begin Message --- Subject: Looping in redisplay due to font problem Date: Thu, 02 Oct 2008 19:47:25 -0400
After the 2008-07-09 change to ftfont.c, Emacs can loop during redisplay
under the following conditions:

xrdb /dev/null
emacs -Q fc-list.list   [fc-list.list is attached]
<PageDown>
<PageDown>
<PageDown>
<PageDown>

Emacs begins looping while in redisplay, while displaying the text
"Corsivo" (the final letter "o" blinks rapidly).

Strangely enough, I can't reproduce this if I substitute C-v for
PageDown (?!??!).  Also, the bug doesn't show up if there is an X
resource Emacs.geometry already defined.

The problem seems to have appeared for the first time during the checkin
listed below.  My tests indicate that the other files involved this
checkin do not affect the problem.

Could you see if you can reproduce this problem, and review the code
changes to see if they may have caused it?  Thanks!


2008-07-09  Kenichi Handa  <handa@m17n.org>

        * ftfont.c (struct ftfont_info): New member index, delete member
        fc_charset_idx.  Make the member order compatible with struct
        xftfont_info.
        (fc_charset_table): Change charset names to registry names.
        (ftfont_pattern_entity): Delete the args registry and
        fc_charset_idx.  Change the value of :font-entity property
        to (FONTNAME . INDEX).  Always set :registry property to
        `iso10646-1'.
        (struct ftfont_cache_data): New struct.
        (ftfont_lookup_cache): New arg for_face.
        (ftfont_get_fc_charset, ftfont_get_otf): New functions.
        (ftfont_driver): Set the member otf_capability.
        (ftfont_get_charset): Adjust it for the change of
        fc_charset_table.
        (OTF_TAG_SYM): New macro.
        (ftfont_spec_pattern): Delete the arg fc_charset_idx.  Adjust it
        for the change of fc_charset_table.
        (ftfont_list): Adjust it for the change of ftfont_spec_pattern and
        ftfont_pattern_entity.  Add FC_INDEX to objset.
        (ftfont_match): Adjust it for the change of ftfont_spec_pattern
        and ftfont_pattern_entity.
        (ftfont_open): Adjust it for the change of ftfont_lookup_cache,
        font_make_object, struct ftfont_info.
        (ftfont_has_char): Use ftfont_get_fc_charset.
        (ftfont_otf_features, ftfont_otf_capability): New functions.
        (ftfont_shape): Use ftfont_get_otf.
        (ftfont_text_extents): Fix initial setting of metrics.



--- End Message ---
--- Begin Message --- Subject: Re: Looping in redisplay due to font problem Date: Thu, 09 Oct 2008 12:45:45 -0400
I found the bug: it's an infloop in update_text_area which can happen
when the pixel width of the current glyph is smaller than the lbearing
of the next glyph.  I'm not sure why the bug was triggered only under
the situation I described; maybe, only that exact geometry and font
produced the numbers leading to the infloop.

I've checked in a fix.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]