From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: Re: Latest changes in redisplay code Date: Thu, 07 Feb 2013 19:42:49 +0400 Message-ID: <5113CB79.5070500@yandex.ru> References: <83pq0g9hcf.fsf@gnu.org> <51109E0B.3000402@yandex.ru> <83d2weabda.fsf@gnu.org> <5112083A.5090409@yandex.ru> <8362259uxk.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060107040704090103040203" X-Trace: ger.gmane.org 1360263544 23229 80.91.229.3 (7 Feb 2013 18:59:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 7 Feb 2013 18:59:04 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Feb 07 19:59:25 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1U3Wgq-0001t0-2A for ged-emacs-devel@m.gmane.org; Thu, 07 Feb 2013 19:59:20 +0100 Original-Received: from localhost ([::1]:44742 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U3WgX-00066X-Bb for ged-emacs-devel@m.gmane.org; Thu, 07 Feb 2013 13:59:01 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:59759) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U3WgU-00065Y-Jd for emacs-devel@gnu.org; Thu, 07 Feb 2013 13:58:59 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U3TgL-0002nu-Fh for emacs-devel@gnu.org; Thu, 07 Feb 2013 10:46:42 -0500 Original-Received: from forward1.mail.yandex.net ([77.88.46.6]:50918) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U3Td7-0002GX-IO; Thu, 07 Feb 2013 10:43:18 -0500 Original-Received: from smtp4.mail.yandex.net (smtp4.mail.yandex.net [77.88.46.104]) by forward1.mail.yandex.net (Yandex) with ESMTP id 4F7BA1241E86; Thu, 7 Feb 2013 19:42:50 +0400 (MSK) Original-Received: from smtp4.mail.yandex.net (localhost [127.0.0.1]) by smtp4.mail.yandex.net (Yandex) with ESMTP id 225C55C0649; Thu, 7 Feb 2013 19:42:50 +0400 (MSK) Original-Received: from unknown (unknown [37.139.80.10]) by smtp4.mail.yandex.net (nwsmtp/Yandex) with ESMTP id gnAOr3VA-gnAOT4ks; Thu, 7 Feb 2013 19:42:49 +0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1360251770; bh=Fok5HOoZJ+9ex+G51uTxwKmLUsUI1RE4sfr7sf/ECsw=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type; b=pqZQaLe+MitbErXZOuIFd1EaluO28p0Qoz22wLKFBh8kTXToHuga7GfC/eRJ7ji6a 4MNT4kf/88g8ZxEnTQfdldN418X4ClXVFsaqQAewR/zxOqveGSPEBTgmJOBzw7gS8h H8ncO33IKd02nDcpYt3mGJNSxyLhl5MoiEGNdwxw= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2 In-Reply-To: <8362259uxk.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] [fuzzy] X-Received-From: 77.88.46.6 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:156863 Archived-At: This is a multi-part message in MIME format. --------------060107040704090103040203 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 02/06/2013 10:08 PM, Eli Zaretskii wrote: >> Date: Wed, 06 Feb 2013 11:37:30 +0400 >> From: Dmitry Antipov >> CC: emacs-devel@gnu.org >> >> On 02/05/2013 10:01 PM, Eli Zaretskii wrote: >> >>> In any case, the potential for problems is still there, because now >>> w->base_line_pos gets reset to zero in many more places than it was >>> before. Previously, only xdisp.c would manipulate this attribute in a >>> few well-defined places. Now it can be reset by any function that >>> calls adjust_window_count, including wset_buffer, which is called from >>> many primitives, most of them outside xdisp.c. Therefore, it's quite >>> possible that we will now have to count from the beginning of the >>> buffer much more frequently than we did before. In large buffers, >>> this could be quite a hit. >> >> Hm. I'll try to reproduce such a situation and check what happens. >> Maybe we should invalidate window_end_valid and base_line_pos only >> if either window is really switched to another buffer or buffer >> is changed. > > That'd be hard, because there are many places that switch to another > buffer temporarily, and they all call adjust_window_count. What about this? Dmitry --------------060107040704090103040203 Content-Type: text/plain; charset=UTF-8; name="wset_buffer.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="wset_buffer.patch" PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy93aW5kb3cuYycKLS0tIHNyYy93aW5kb3cuYwkyMDEz LTAyLTAxIDA3OjIzOjE4ICswMDAwCisrKyBzcmMvd2luZG93LmMJMjAxMy0wMi0wNyAwNToz MToyMCArMDAwMApAQCAtMjY5LDkgKzI2OSwxMCBAQAogfQogCiAvKiBDYWxsZWQgd2hlbiBX J3MgYnVmZmVyIHNsb3QgaXMgY2hhbmdlZC4gIEFSRyAtMSBtZWFucyB0aGF0IFcgaXMgYWJv dXQgdG8KLSAgIGNlYXNlIGl0cyBidWZmZXIsIGFuZCAxIG1lYW5zIHRoYXQgVyBpcyBhYm91 dCB0byBzZXQgdXAgdGhlIG5ldyBvbmUuICAqLworICAgY2Vhc2UgaXRzIGJ1ZmZlciwgYW5k IDEgbWVhbnMgdGhhdCBXIGlzIGFib3V0IHRvIHNldCB1cCB0aGUgbmV3IG9uZS4KKyAgIFJl dHVybiBXJ3MgYnVmZmVyIGlmIGl0J3MgYSBidWZmZXIgb3IgTlVMTCBvdGhlcndpc2UuICAq LwogCi1zdGF0aWMgdm9pZAorc3RhdGljIHN0cnVjdCBidWZmZXIgKgogYWRqdXN0X3dpbmRv d19jb3VudCAoc3RydWN0IHdpbmRvdyAqdywgaW50IGFyZykKIHsKICAgZWFzc2VydCAoZWFi cyAoYXJnKSA9PSAxKTsKQEAgLTI4MywyMSArMjg0LDM0IEBACiAJYiA9IGItPmJhc2VfYnVm ZmVyOwogICAgICAgYi0+d2luZG93X2NvdW50ICs9IGFyZzsKICAgICAgIGVhc3NlcnQgKGIt PndpbmRvd19jb3VudCA+PSAwKTsKLSAgICAgIC8qIFRoZXNlIHNob3VsZCBiZSByZWNhbGN1 bGF0ZWQgYnkgcmVkaXNwbGF5IGNvZGUuICAqLwotICAgICAgdy0+d2luZG93X2VuZF92YWxp ZCA9IDA7Ci0gICAgICB3LT5iYXNlX2xpbmVfcG9zID0gMDsKKyAgICAgIHJldHVybiBiOwog ICAgIH0KKyAgcmV0dXJuIE5VTEw7CiB9CiAKLS8qIFNldCBXJ3MgYnVmZmVyIHNsb3QgdG8g VkFMIGFuZCByZWNvbXB1dGUgbnVtYmVyCi0gICBvZiB3aW5kb3dzIHNob3dpbmcgVkFMIGlm IGl0IGlzIGEgYnVmZmVyLiAgKi8KKy8qIFNldCBXJ3MgYnVmZmVyIHNsb3QgdG8gVkFMIGFu ZCByZWNvbXB1dGUgbnVtYmVyIG9mIHdpbmRvd3Mgc2hvd2luZworICAgVkFMIGlmIGl0IGlz IGEgYnVmZmVyLCBjYXRjaCBzb21lIHJlZGlzcGxheSdzIGF0dGVudGlvbiBpZiBuZWVkZWQu ICAqLwogCiB2b2lkCiB3c2V0X2J1ZmZlciAoc3RydWN0IHdpbmRvdyAqdywgTGlzcF9PYmpl Y3QgdmFsKQogewotICBhZGp1c3Rfd2luZG93X2NvdW50ICh3LCAtMSk7CisgIHN0cnVjdCBi dWZmZXIgKm9sZGIsICpuZXdiOworCisgIG9sZGIgPSBhZGp1c3Rfd2luZG93X2NvdW50ICh3 LCAtMSk7CiAgIHctPmJ1ZmZlciA9IHZhbDsKLSAgYWRqdXN0X3dpbmRvd19jb3VudCAodywg MSk7CisgIG5ld2IgPSBhZGp1c3Rfd2luZG93X2NvdW50ICh3LCAxKTsKKyAgaWYgKChvbGRi ICYmIG9sZGIgPT0gbmV3YgorICAgICAgICYmICgoQlVGX1VOQ0hBTkdFRF9NT0RJRklFRCAo b2xkYikgPCBCVUZfTU9ESUZGIChvbGRiKSkKKwkgICB8fCAoQlVGX09WRVJMQVlfVU5DSEFO R0VEX01PRElGSUVEIChvbGRiKQorCSAgICAgICA8IEJVRl9PVkVSTEFZX01PRElGRiAob2xk YikpKSkKKyAgICAgIHx8ICghb2xkYiAmJiBuZXdiKSkKKyAgICB7CisgICAgICAvKiBJZiBX J3MgYnVmZmVyIHdhcyBjaGFuZ2VkIHNpbmNlIGxhc3QgcmVkaXNwbGF5IG9yIFcKKwkgaXMg c3dpdGNoZWQgdG8gYW5vdGhlciBidWZmZXIgZnJvbSBubyBidWZmZXIsIG5leHQKKwkgcmVk aXNwbGF5IHNob3VsZCByZWNhbGN1bGF0ZSB0aGVzZSBmaWVsZHMuICAqLworICAgICAgdy0+ d2luZG93X2VuZF92YWxpZCA9IDA7CisgICAgICB3LT5iYXNlX2xpbmVfcG9zID0gMDsKKyAg ICB9CiB9CiAKIC8qIEJ1aWxkIGEgZnJlcXVlbnRseSB1c2VkIDQtaW50ZWdlciAoWCBZIFcg SCkgbGlzdC4gICovCgo= --------------060107040704090103040203--