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