From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel Subject: Re: Question about display engine Date: Tue, 3 Sep 2019 10:45:18 +0200 Message-ID: <4663e760-a611-6c29-e0e2-69bde9da87b1@gmx.at> References: <83woexb3yu.fsf@gnu.org> <160dfd3f-60d4-8758-df65-2165c552f39e@gmx.at> <83zhjrakf9.fsf@gnu.org> <2aff0873-5d18-a4a0-eada-1ad0e632e753@gmx.at> <83mufr9gya.fsf@gnu.org> <03a80221-5222-9b8b-86a1-67cef18df463@gmx.at> <83zhjp937v.fsf@gnu.org> <8acd9fc1-e6ce-9a86-cfb6-e00a672c154a@gmx.at> <20190901122628.aynhzwwpvqbgyydh@Ergus> <20190902110504.zniyfmd7bi53iyxe@Ergus> <83zhjm7juc.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="22813"; mail-complaints-to="usenet@blaine.gmane.org" Cc: emacs-devel@gnu.org To: Eli Zaretskii , Ergus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 03 10:50:18 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i54W2-0005li-Du for ged-emacs-devel@m.gmane.org; Tue, 03 Sep 2019 10:50:18 +0200 Original-Received: from localhost ([::1]:42978 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i54W1-0001e8-1H for ged-emacs-devel@m.gmane.org; Tue, 03 Sep 2019 04:50:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54387) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i54RR-0001bd-Jy for emacs-devel@gnu.org; Tue, 03 Sep 2019 04:45:34 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i54RQ-0001Sq-HA for emacs-devel@gnu.org; Tue, 03 Sep 2019 04:45:33 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:46973) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i54RO-0001PB-P7; Tue, 03 Sep 2019 04:45:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1567500319; bh=hlcY9XlUezebJZOvQMLE9W0RnFtmd03S8YtjTBtMQAs=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=LmzO0Brk0GG+xkFfxx5LfODOH6JGsN6qxB+NZAy8eGNj/zuI6jsB/ix9lOnGrVt+x ZsZWXoFHo577PthwjPkJPlZI1qwPfdRYCEAjvOXgBTSXA7mw0jaTip+uWss7hv9hyw O1ESWOvUZsiXzLGqoMTFDcaTlE4vt0bFvb5/lEf0= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.100] ([212.95.5.255]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MbivM-1iaYQz0sVq-00dEWh; Tue, 03 Sep 2019 10:45:19 +0200 In-Reply-To: <83zhjm7juc.fsf@gnu.org> Content-Language: de-DE X-Provags-ID: V03:K1:IGEsKFMb4Ut9t5eAFsRpNPc3nXboYnuBceoMp/+dh/7DVaQwwZ4 wLsNMvYEBcCg49DXtCoW2hU1oZr78KP+R4Vicif/cuvCyPBkXy3CVsXBGsBlbWm3A5xWCGf 34efm0JSEE3su19+Nwp688OfG0blorOb+krW5Kuq0kl0wUgRXPpBC6o8Ap27UUfwT5z14iy aGcmFWNpQS/r+XqjuroYQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:NoTPmEyK5Uo=:AtA7y3pXBLRdtsxB2BlF4N 88ZDZmJ7JdSFBuOertJDl5h3+sGmZW5li3L2Natal4UXka+b9dMgRla6JBaMHk9Yfs3WI+0TX RFpWs9ISMy3KTBGJ34s+qgf6D+aVwh108pTftRtEJ48MYyuk53cv42lKYodYsyktRqkS3AZx8 lB9F9BFF7ILGUGHBWQzx8a+Ys5YEdRDYnL5UIOiwuJdCf+Cr8tTCt/4DT8TA+LLiCqJl9QgvD 9dauWZPhAKIKMaild+A7F2CqRksHw6XHwXsyvntRqsQqAbnucBgJ3lfoxVs7J/AJKXUoxQJbc fUkOwPXSX/pIk6KEKM1JimVnbfKXIbqZtbO1bdfvg5RRF62b33r/5rJRrTRaj75sFNOMOoa99 kHLERpxBRq/Je6ViTt+pQCaeUXLf2od7YG9rlvERwNM+ySvvMc6P8ddO0oEJ70HTtX/SwF61x Qh+rEoZeEpgg1vXHPHExTZabQCV4Kp6h4Ew3lUl7g+tgLNQRjsBNfGKV0JIUhYyWAKHQbvBaI nM2Ptpq9jFvPFApn3KaI62F2qr1Vq6ON65EjN/oZ+9kl7LV6h2X4Kocl3zeEhWHquMrhYAAXy 46lWjJLneisl+R3ywmkDd4/HOoLVN6c7UybEcrO8RCR9+RKRSIseLtooPMsCFGqVeGuM0DwZN BFFlRxCPxuiL0eoJdoIwEdXyWdjuCJ6yPRO15JdWZfQSmMgESUu8n/kjbzH68Pao0hqoOm7Il 4kjwmx7qirrLFtEk/hf2ESh2c3QqRweeM0WHHGO5MQc7UQQs3sV9hN2qHjCGPvNA07LfkYj/ X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.19 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.org gmane.emacs.devel:239799 Archived-At: > I don't think I understand why you are talking about face pointers. > The iterator doesn't keep any face pointers, it keeps face IDs (which > allow to obtain the face pointer, when needed, by using FACE_FROM_ID). > > So all you need is to have another face ID member in the iterator, to > be used for extending past EOL; depending on how the :extend bits are > set, that face ID may or may not be identical to the "normal" face ID, > the one we have now and use for buffer text. But a face ID is only available after realizing a face. With a lazy approach there might be no realized face yet and the iterator would realize that face on the fly. >> In the display engine we do this very >> frequently. As extend_face_to_end_of_line is very localized we just need >> to save a pointer to a+b+c+d on the beginning of the function and >> restore it at the end. > > Again, not a pointer: a face ID. And yes, we have saved_face_id > member of the iterator for this purpose. In that case we would have a face ID for sure. martin