[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mgp-users-jp 01296] mgp segfault if a14/k14 not found.
- To: mgp-users-jp@mew.org
- Subject: [mgp-users-jp 01296] mgp segfault if a14/k14 not found.
- From: Fumitoshi UKAI <ukai@debian.or.jp>
- Date: Sun, 18 May 2003 02:53:26 +0900
- Delivered-to: mailing list mgp-users-jp@mew.org
- Mailing-list: contact mgp-users-jp-help@mew.org; run by ezmlm
- Organization: Debian JP Project
- User-agent: Wanderlust/2.10.0 (Venus) SEMI/1.14.4 (Hosorogi) FLIM/1.14.4 (Kashiharajingū-mae) APEL/10.4 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI)
http://bugs.debian.org/177862 なんですが
xftとかがうまく動かなくなっている時に a14, k14 が
見えなくなって segfault するようです。
x11.cの void init_win2() で
/*(1)*/ plfs = XLoadQueryFont(display, PAGELIST_FONT);
plkfs = XLoadQueryFont(display, PAGELIST_KFONT);
/*(2)*/ if (plfs) {
XSetFont(display, gc_pl, plfs->fid);
XSetFont(display, gc_plrev, plfs->fid);
XSetFont(display, gc_pta, plfs->fid);
}
if (plkfs)
XSetFont(display, gc_ptk, plkfs->fid);
XSetFunction(display, gc_pl, GXcopy);
XSetFunction(display, gc_plrev, GXcopy);
XSetFunction(display, gc_pta, GXcopy);
XSetFunction(display, gc_ptk, GXcopy);
XSetForeground(display, gc_pl, BlackPixel(display, screen));
XSetBackground(display, gc_pl, WhitePixel(display, screen));
XSetForeground(display, gc_plrev, WhitePixel(display, screen));
XSetBackground(display, gc_plrev, BlackPixel(display, screen));
/*(3)*/ pl_fh = (plfs->max_bounds.ascent + plfs->max_bounds.descent) * 1.2;
pl_fw = plfs->max_bounds.rbearing + plfs->max_bounds.lbearing;
(1)のところで PAGELIST_FONT ("a14")を とってきていて、
(2)ではちゃんと NULL checkをしているのに (3)では そのcheckを
せずに参照しているので、ここでsegumentation faultするようです。
plfs自体は他でも参照しているようなので、PAGELIST_FONTが
とれなかった(plfs==NULL)時は、その旨を表示して終了したほうが
いいのではないでしょうか?
--
鵜飼文敏