From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings Newsgroups: gmane.emacs.bugs Subject: bug#56682: Fix the long lines font locking related slowdowns Date: Fri, 29 Jul 2022 20:02:47 +0000 Message-ID: References: <83bktghrn0.fsf@gnu.org> <8a3eaeef010995a5da8d@heytings.org> <837d40ds09.fsf@gnu.org> <83zggwcby5.fsf@gnu.org> <83o7xccagi.fsf@gnu.org> <831qu7daxb.fsf@gnu.org> <83sfmnb7yg.fsf@gnu.org> <837d3ybh5z.fsf@gnu.org> <136c4fe0fc74196714aa@heytings.org> <83pmhp89ov.fsf@gnu.org> <136c4fe0fc39573addc9@heytings.org> <83k07x8738.fsf@gnu.org> <136c4fe0fcdf00ef9a11@heytings.org> <83h73183r7.fsf@gnu.org> <136c4fe0fc0fceb0d752@heytings.org> <838roc8ka7.fsf@gnu.org> <83tu706obt.fsf@gnu.org> <83h7306ifa.fsf@gnu.org> <83edy37pul.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12776"; mail-complaints-to="usenet@ciao.gmane.io" Cc: gerd.moellmann@gmail.com, 56682@debbugs.gnu.org, larsi@gnus.org, monnier@iro.umontreal.ca To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jul 29 22:03:34 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oHWCs-00033y-1X for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 29 Jul 2022 22:03:34 +0200 Original-Received: from localhost ([::1]:46796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oHWCq-00039U-L7 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 29 Jul 2022 16:03:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49626) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oHWCM-00035e-7L for bug-gnu-emacs@gnu.org; Fri, 29 Jul 2022 16:03:08 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43776) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oHWCL-0007CC-V4 for bug-gnu-emacs@gnu.org; Fri, 29 Jul 2022 16:03:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oHWCL-0000OS-QZ for bug-gnu-emacs@gnu.org; Fri, 29 Jul 2022 16:03:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Gregory Heytings Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 29 Jul 2022 20:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56682 X-GNU-PR-Package: emacs Original-Received: via spool by 56682-submit@debbugs.gnu.org id=B56682.16591249701492 (code B ref 56682); Fri, 29 Jul 2022 20:03:01 +0000 Original-Received: (at 56682) by debbugs.gnu.org; 29 Jul 2022 20:02:50 +0000 Original-Received: from localhost ([127.0.0.1]:33525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oHWCA-0000O0-49 for submit@debbugs.gnu.org; Fri, 29 Jul 2022 16:02:50 -0400 Original-Received: from heytings.org ([95.142.160.155]:58194) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oHWC8-0000Ns-Ku for 56682@debbugs.gnu.org; Fri, 29 Jul 2022 16:02:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org; s=20220101; t=1659124967; bh=9EgbIISRh6CKKUafFop/IxJoOu/cl5S/IpIDeUb0fRY=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From; b=BRqxOM4smnrDJTua/WForqnwqwenvg1ueIpr5T7Evd+uj8m+qwJUmbgkIqCnhct13 gLC2vHjB/DvItWEsISrhyo9oNcdhxLmiarkw5fGt8c2Xe6Fmjro91NmDEZYo6llyPz L/Eooio2BK64QQtsmCeDbRa+OpX23vvbhuavBMULVWIKI3Mbhz1TFi7ihAXAbOKI/1 PDRcLqe5/QZceE+QOAxHnRPX9c1Vgs5W8Cz69Y9Lf+mrFgZ/FQRZSCg/AqTm8uDobb 7Xv5CksClzTvnzLU4aQS8AJwh63RGMIhBKpLZVaTVuhSrf/RaNWN6xmbrhetaZHCs2 oo3rOatVSXw+A== In-Reply-To: <83edy37pul.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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:238221 Archived-At: > > Doing it in init_iterator is too early alas, with the above recipe at > least init_iterator is called with charpos inside the narrowing bounds, > after which the iterator moves outside the narrowing bounds. So I fixed > the bug in handle_fontified_prop. > Actually that doesn't work correctly. A recipe: emacs -Q M-: (progn (set-frame-width nil 119) (set-frame-height nil 38)) RET C-x C-f dictionary.json RET y C-s aan SPC Now you'll see that the last line at the bottom of the window, which does not contain "aan ", is highlighted. Is the following okay from your point of view? diff --git a/src/xdisp.c b/src/xdisp.c index b1ee7889d4..8c62f088b8 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -4412,13 +4412,8 @@ handle_fontified_prop (struct it *it) ptrdiff_t begv = it->narrowed_begv ? it->narrowed_begv : BEGV; ptrdiff_t zv = it->narrowed_zv; ptrdiff_t charpos = IT_CHARPOS (*it); - if (charpos < begv || charpos > zv) - { - begv = get_narrowed_begv (it->w, charpos); - if (!begv) begv = BEGV; - zv = get_narrowed_zv (it->w, charpos); - } - Fnarrow_to_region (make_fixnum (begv), make_fixnum (zv), Qt); + if (begv <= charpos && charpos <= zv) + Fnarrow_to_region (make_fixnum (begv), make_fixnum (zv), Qt); } /* Don't allow Lisp that runs from 'fontification-functions'