unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#6618: 24.0.50; stack overflow in equal
@ 2010-07-12 11:01 john ffitch
  2010-07-13 10:39 ` bug#6618: Bug was probably introduced by revision 100788 Bernhard Herzog
  2010-07-16  8:38 ` bug#6618: 24.0.50; stack overflow in equal john ffitch
  0 siblings, 2 replies; 4+ messages in thread
From: john ffitch @ 2010-07-12 11:01 UTC (permalink / raw)
  To: 6618

If I start emacs with my usual command line I get a stack overflow

harvey:~/GNU_21/emacs/trunk> src/emacs -geometry 84x46+64+10 -fn "-etl-fixed-medium-r-normal--16-160-72-72-c-80-iso8859-1"
Stack overflow in equal
harvey:~/GNU_21/emacs/trunk> 

if I omit the font infprmation it starts.  I have been using this font
for a very long time.  This is with update from bzr this morning.  



In GNU Emacs 24.0.50.8 (x86_64-unknown-linux-gnu, GTK+ Version 2.18.6)
 of 2010-07-12 on harvey
Windowing system distributor `The X.Org Foundation', version 11.0.10605000
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Mail

Minor modes in effect:
  auto-image-file-mode: t
  show-paren-mode: t
  display-time-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> C-x C-f ~ / d i a <tab> <return> 
C-v <down-mouse-1> <mouse-1> C-x C-f R M A <tab> <return> 
y M-R p r e m i e r <return> M-m C-x C-k <return> M-x 
n C-g M-x r e p o r <tab> <return>

Recent messages:
Parsing /home/jpff/.mailrc... done
Invalid face reference: my-trailing-space-face [10 times]
No keyboard macro defined.  Create one? (y or n) 
Invalid face reference: my-trailing-space-face [5 times]
Please answer y or n.  No keyboard macro defined.  Create one? (y or n) 
Invalid face reference: my-trailing-space-face [5 times]
QuitInvalid face reference: my-trailing-space-face
Invalid face reference: my-trailing-space-face [4 times]
QuitInvalid face reference: my-trailing-space-face
Invalid face reference: my-trailing-space-face [19 times]

Load-path shadows:
/home/jpff/GNU_21/local-lisp/autotest-mode hides /usr/local/share/emacs/site-lisp/autotest-mode
/home/jpff/GNU_21/local-lisp/autoconf-mode hides /usr/local/share/emacs/site-lisp/autoconf-mode
/home/jpff/GNU_21/local-lisp/scroll-lock hides /home/jpff/GNU_21/emacs/trunk/lisp/scroll-lock
/home/jpff/GNU_21/local-lisp/t-mouse hides /home/jpff/GNU_21/emacs/trunk/lisp/t-mouse
/home/jpff/GNU_21/local-lisp/ruler-mode hides /home/jpff/GNU_21/emacs/trunk/lisp/ruler-mode
/home/jpff/GNU_21/local-lisp/emerge hides /home/jpff/GNU_21/emacs/trunk/lisp/vc/emerge
/home/jpff/GNU_21/local-lisp/url-gw hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-gw
/home/jpff/GNU_21/local-lisp/url-file hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-file
/home/jpff/GNU_21/local-lisp/url-cid hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-cid
/home/jpff/GNU_21/local-lisp/url-parse hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-parse
/home/jpff/GNU_21/local-lisp/url-cache hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-cache
/home/jpff/GNU_21/local-lisp/url-http hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-http
/home/jpff/GNU_21/local-lisp/url-misc hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-misc
/home/jpff/GNU_21/local-lisp/url hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url
/home/jpff/GNU_21/local-lisp/url-auth hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-auth
/home/jpff/GNU_21/local-lisp/url-ldap hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-ldap
/home/jpff/GNU_21/local-lisp/url-news hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-news
/home/jpff/GNU_21/local-lisp/url-vars hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-vars
/home/jpff/GNU_21/local-lisp/url-cookie hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-cookie
/home/jpff/GNU_21/local-lisp/url-nfs hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-nfs
/home/jpff/GNU_21/local-lisp/url-ns hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-ns
/home/jpff/GNU_21/local-lisp/url-irc hides /home/jpff/GNU_21/emacs/trunk/lisp/url/url-irc
/home/jpff/GNU_21/local-lisp/remember hides /home/jpff/GNU_21/emacs/trunk/lisp/textmodes/remember
/home/jpff/GNU_21/local-lisp/socks hides /home/jpff/GNU_21/emacs/trunk/lisp/net/socks

Features:
(shadow emacsbug edmacro kmacro mailabbrev mailalias etach sendmail
mime-compose mail-alias-menu mailcrypt mail-extr comint ring rmail
mail-utils eldoc package image-file logger crypt crypt++ crypt+pgp-pub
paren cal-julian uniquify advice help-fns advice-preload view
cal-china cal-bahai cal-islam cal-hebrew lunar solar cal-dst appt
diary-lib diary-loaddefs holidays hol-loaddefs regexp-opt cal-menu
easymenu calendar cal-loaddefs time tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev loaddefs button minibuffer faces cus-face files text-properties
overlay md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process
dynamic-setting font-render-setting gtk x-toolkit x multi-tty emacs)

==John ffitch





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#6618: Bug was probably introduced by revision 100788
  2010-07-12 11:01 bug#6618: 24.0.50; stack overflow in equal john ffitch
@ 2010-07-13 10:39 ` Bernhard Herzog
  2010-07-14  4:01   ` Kenichi Handa
  2010-07-16  8:38 ` bug#6618: 24.0.50; stack overflow in equal john ffitch
  1 sibling, 1 reply; 4+ messages in thread
From: Bernhard Herzog @ 2010-07-13 10:39 UTC (permalink / raw)
  To: 6618

I'm running into the same problem and I've debugged it a little. AFAICT the 
problem was introduced with revision 100788.  The revision immediately before 
that works fine, but I can observer the problem with revision 100788.  The 
ChangeLog entry for this is

2010-07-12  Kenichi Handa  <handa@m17n.org>

       * font.h (enum font_property_index): New member FONT_ENTITY_INDEX.

       * font.c (font_open_entity): Record ENTITY in FONT_OBJECT's slot
       of FONT_ENTITY_INDEX.
       (Ffont_get): If KEY is :otf and the font-object doesn't have the
       property, get the property value dynamically.
       (Ffont_put): Accept font-entity and font-object too.
       (Ffont_get_glyhphs): Renamed from Fget_font_glyphs.  Arguments and
       return value changed.
       (syms_of_font): Adjusted for the above change.

It's most likely the first change in font.c: "Record ENTITY in FONT_OBJECT's 
slot of FONT_ENTITY_INDEX.":

--- src/font.c  2010-07-11 10:31:10 +0000
+++ src/font.c  2010-07-12 02:28:50 +0000
@@ -3005,7 +3005,7 @@
     return Qnil;
   ASET (entity, FONT_OBJLIST_INDEX,
        Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX)));
-  ASET (font_object, FONT_OBJLIST_INDEX, Qnil);
+  ASET (font_object, FONT_ENTITY_INDEX, entity);
   num_fonts++;
 
   font = XFONT_OBJECT (font_object);

This introduces circular references: font_object now refers to entity and 
entity refers back to font_object.  This probably leads to the stack overflow 
in equal later on.  A backtrace in gdb looks like this, after about 200 
recursive calls of internal_equal:

#200 0x081a2012 in internal_equal (o1=<value optimized out>, o2=149618949, 
    depth=<value optimized out>, props=0) at fns.c:2127
#201 0x081a2012 in internal_equal (o1=<value optimized out>, o2=149761965, 
    depth=<value optimized out>, props=0) at fns.c:2127
#202 0x081a21ba in Fequal (o1=141309301, o2=149761965) at fns.c:2015
#203 0x080ddd67 in Finternal_set_lisp_face_attribute (face=138409674, 
    attr=138389402, value=149761965, frame=150016069) at xfaces.c:3288


  Bernhard





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#6618: Bug was probably introduced by revision 100788
  2010-07-13 10:39 ` bug#6618: Bug was probably introduced by revision 100788 Bernhard Herzog
@ 2010-07-14  4:01   ` Kenichi Handa
  0 siblings, 0 replies; 4+ messages in thread
From: Kenichi Handa @ 2010-07-14  4:01 UTC (permalink / raw)
  To: Bernhard Herzog; +Cc: 6618

In article <201007131239.08209.bernhard.herzog@intevation.de>, Bernhard Herzog <bernhard.herzog@intevation.de> writes:

> I'm running into the same problem and I've debugged it a little. AFAICT the 
> problem was introduced with revision 100788.  The revision immediately before 
> that works fine, but I can observer the problem with revision 100788.  The 
> ChangeLog entry for this is

> 2010-07-12  Kenichi Handa  <handa@m17n.org>

>        * font.h (enum font_property_index): New member FONT_ENTITY_INDEX.

>        * font.c (font_open_entity): Record ENTITY in FONT_OBJECT's slot
>        of FONT_ENTITY_INDEX.
>        (Ffont_get): If KEY is :otf and the font-object doesn't have the
>        property, get the property value dynamically.
>        (Ffont_put): Accept font-entity and font-object too.
>        (Ffont_get_glyhphs): Renamed from Fget_font_glyphs.  Arguments and
>        return value changed.
>        (syms_of_font): Adjusted for the above change.

> It's most likely the first change in font.c: "Record ENTITY in FONT_OBJECT's 
> slot of FONT_ENTITY_INDEX.":

Thank you for finding that problem.  The reason of recording
ENTITY in FONT-OBJECT is that we can get :otf property only
from FONT-OBJECT, but the property should be common to all
font-ojbects realized from the same ENTITY.  So, I wanted a
way to get ENTITY from FONT-OBJECT.  I've just committed a
change to cancel that recording.

As a result, we should re-caliculate :otf property of a font
whose sibling (i.e. a font-object realized from the same
entity but with different size) already know it.  But,
perhaps, that doesn't influence the redisplay speed that
match.

---
Kenichi Handa
handa@m17n.org





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#6618: 24.0.50; stack overflow in equal
  2010-07-12 11:01 bug#6618: 24.0.50; stack overflow in equal john ffitch
  2010-07-13 10:39 ` bug#6618: Bug was probably introduced by revision 100788 Bernhard Herzog
@ 2010-07-16  8:38 ` john ffitch
  1 sibling, 0 replies; 4+ messages in thread
From: john ffitch @ 2010-07-16  8:38 UTC (permalink / raw)
  To: bug-gnu-emacs

Sorry -- I seem to have lost the bug number, but this is now OK -- thanks
==John ffitch





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-07-16  8:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-12 11:01 bug#6618: 24.0.50; stack overflow in equal john ffitch
2010-07-13 10:39 ` bug#6618: Bug was probably introduced by revision 100788 Bernhard Herzog
2010-07-14  4:01   ` Kenichi Handa
2010-07-16  8:38 ` bug#6618: 24.0.50; stack overflow in equal john ffitch

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