From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#39133: 28.0.50; Emacs slowdown on special char Date: Wed, 15 Jan 2020 18:19:28 +0200 Message-ID: <83r2004rqn.fsf@gnu.org> References: <83lfqa5aa2.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="ciao:159.69.161.202"; logging-data="29808"; mail-complaints-to="usenet@ciao.gmane.io" Cc: lg.zevlg@gmail.com, rpluim@gmail.com, 39133@debbugs.gnu.org To: YAMAMOTO Mitsuharu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jan 15 17:49:21 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1irlr7-0007b5-9v for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 15 Jan 2020 17:49:21 +0100 Original-Received: from localhost ([::1]:57098 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1irlr5-0002J2-O6 for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 15 Jan 2020 11:49:19 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33866) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1irlOm-0005Pe-1o for bug-gnu-emacs@gnu.org; Wed, 15 Jan 2020 11:20:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1irlOk-0006ow-Ls for bug-gnu-emacs@gnu.org; Wed, 15 Jan 2020 11:20:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:57681) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1irlOk-0006oo-Hn for bug-gnu-emacs@gnu.org; Wed, 15 Jan 2020 11:20:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1irlOk-0007c4-Dq for bug-gnu-emacs@gnu.org; Wed, 15 Jan 2020 11:20:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 15 Jan 2020 16:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39133 X-GNU-PR-Package: emacs Original-Received: via spool by 39133-submit@debbugs.gnu.org id=B39133.157910516329216 (code B ref 39133); Wed, 15 Jan 2020 16:20:02 +0000 Original-Received: (at 39133) by debbugs.gnu.org; 15 Jan 2020 16:19:23 +0000 Original-Received: from localhost ([127.0.0.1]:35421 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1irlO6-0007b8-Ty for submit@debbugs.gnu.org; Wed, 15 Jan 2020 11:19:23 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:52837) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1irlO4-0007au-Ro for 39133@debbugs.gnu.org; Wed, 15 Jan 2020 11:19:21 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:39268) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1irlNy-0006Z7-Nn; Wed, 15 Jan 2020 11:19:14 -0500 Original-Received: from [176.228.60.248] (port=3279 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1irlNx-00023Z-Ur; Wed, 15 Jan 2020 11:19:14 -0500 In-reply-to: (message from YAMAMOTO Mitsuharu on Wed, 15 Jan 2020 13:26:11 +0900) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:174636 Archived-At: > Date: Wed, 15 Jan 2020 13:26:11 +0900 > From: YAMAMOTO Mitsuharu > Cc: Eli Zaretskii , > Evgeny Zajcev , > 39133@debbugs.gnu.org, handa@gnu.org > > + if (code != FONT_INVALID_CODE) > + { > + struct font_metrics metrics; > + > + LGLYPH_SET_CODE (glyph, code); > + font->driver->text_extents (font, &code, 1, &metrics); > + LGLYPH_SET_LBEARING (glyph, metrics.lbearing); > + LGLYPH_SET_RBEARING (glyph, metrics.rbearing); > + LGLYPH_SET_WIDTH (glyph, metrics.width); > + LGLYPH_SET_ASCENT (glyph, metrics.ascent); > + LGLYPH_SET_DESCENT (glyph, metrics.descent); > + } > } > > > But I'm not sure if it is ok to leave the code and metrics-related > fields nil when encode_char returns FONT_INVALID_CODE. Handa-san? We could do in the 'else' branch the same we do in the single caller of this function, fill_gstring_body, when we don't call font_fill_lglyph_metrics: if (FONT_OBJECT_P (font_object)) { font_fill_lglyph_metrics (g, font_object); } else { int width = XFIXNAT (CHAR_TABLE_REF (Vchar_width_table, c)); LGLYPH_SET_CODE (g, c); LGLYPH_SET_LBEARING (g, 0); LGLYPH_SET_RBEARING (g, width); LGLYPH_SET_WIDTH (g, width); LGLYPH_SET_ASCENT (g, 1); LGLYPH_SET_DESCENT (g, 0); }