From unknown Wed Jun 18 23:11:36 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#37755 <37755@debbugs.gnu.org> To: bug#37755 <37755@debbugs.gnu.org> Subject: Status: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) Reply-To: bug#37755 <37755@debbugs.gnu.org> Date: Thu, 19 Jun 2025 06:11:36 +0000 retitle 37755 Logic in init_fringe_bitmap should be moved to backends (mayb= e rif->define_fringe_bitmap) reassign 37755 emacs submitter 37755 Carlos Pita severity 37755 normal tag 37755 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 14 22:30:26 2019 Received: (at submit) by debbugs.gnu.org; 15 Oct 2019 02:30:26 +0000 Received: from localhost ([127.0.0.1]:42504 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKCbR-0004RN-E9 for submit@debbugs.gnu.org; Mon, 14 Oct 2019 22:30:26 -0400 Received: from lists.gnu.org ([209.51.188.17]:56028) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKCbP-0004RF-9j for submit@debbugs.gnu.org; Mon, 14 Oct 2019 22:30:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45216) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iKCbO-0000iF-7J for bug-gnu-emacs@gnu.org; Mon, 14 Oct 2019 22:30:23 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iKCbN-0005XJ-7w for bug-gnu-emacs@gnu.org; Mon, 14 Oct 2019 22:30:22 -0400 Received: from mail-yb1-xb2d.google.com ([2607:f8b0:4864:20::b2d]:36443) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iKCbN-0005Wg-0p for bug-gnu-emacs@gnu.org; Mon, 14 Oct 2019 22:30:21 -0400 Received: by mail-yb1-xb2d.google.com with SMTP id t4so3403296ybk.3 for ; Mon, 14 Oct 2019 19:30:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=PyO59Dz4pkK3AO1uPJdgDWFxa2UO7/omuXYQq0FJN78=; b=XN8s1TbrLdnuCnM/efvH9fQ3VBdwGsHYMCTsqd4WkL/j6wmYHsO1nJncx+DEMZEuEj Na6hkbHDY2zkWOmBWjsQ/I9kVuk6KLBTNRP0jTsn5yekXLR+inhdCzATFAYRGkpkAuwY +Ud8j+ciGNACtgnJ/Hfn+HrawdjwEOw/QwK/YvJZoOHYEdNFe1wXHnR5JQukCogWl7P+ pWyaS0bz9VWNesrohysGAGvzb6OdEvsFbiHZvFRhzYyhTU+vgC4JuDZLBX6F9KX3YidL k09Dcsip6hLraul+MfH6FgPLzrPYmHkdApcrubW/h64O6O7L5qoS0CFkbnHchqdinH8S r7yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=PyO59Dz4pkK3AO1uPJdgDWFxa2UO7/omuXYQq0FJN78=; b=YU/XfT/jnusV2PBEEe1fCLZDxu00YA8o1frJyaWT9IZoZuDUHo50bVKme7p3A7vow4 EPn+wg5UjJGyo+3PC8AbZkJvnfpGR+J44HMW2waoHBaSOSgWKX+3IF8Jk3DZaDhJfrVz GOQGgWHWUwEp06+ZQmDVWeMraSpqWQpOik2Db5rHz0v8oCRU0pw8X9vDu5VV8bpQy/uV PYnzEAqcNveGILLvWhUnYgiai9ETcuSP1WNqGbIvGvcTHlywzI2RFyVKAWKnPt67AG9d nK00Q25Wp/DGSygTQ3PAlxq3hbldfvLIFU/c+g/rYr8B7yZDVEuuYK5SHzPIgbLm1WuV u/6A== X-Gm-Message-State: APjAAAVrr2gPFZAzipb29SAc2s1DHzliifUKcKAueQyHff1b/MD8J4To GygxbbIcfN0U5ccAPdsAPid2OWX52VvmKi/bhHfnrSPOLo0= X-Google-Smtp-Source: APXvYqyj1VN7v7GTAmsmquTKfqoinKFKVGu1W0Yc0SKb/Qo4nYHxt+Vb3GBYntypskvpbgDVJH1jzQ/4Blob4q1bGFY= X-Received: by 2002:a25:9947:: with SMTP id n7mr21832865ybo.263.1571106619886; Mon, 14 Oct 2019 19:30:19 -0700 (PDT) MIME-Version: 1.0 From: Carlos Pita Date: Mon, 14 Oct 2019 23:30:08 -0300 Message-ID: Subject: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset="UTF-8" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::b2d X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) In fringe.c you have init_fringe_bitmap with this structure: ``` #if defined (HAVE_X_WINDOWS) ... #ifdef USE_CAIRO ... #endif ... #endif #ifdef HAVE_NTGUI ... #endif if (!once_p) { .... rif->define_fringe_bitmap (...) .... } ``` Now, this is backend specific code that should be moved behind the redisplay_interface. It seems to me that the obvious candidate to host that code is define_fringe_bitmap. The once_p clause is related to pdumper which I ignore all about. Best regards -- Carlos From debbugs-submit-bounces@debbugs.gnu.org Tue Oct 15 05:33:48 2019 Received: (at 37755) by debbugs.gnu.org; 15 Oct 2019 09:33:48 +0000 Received: from localhost ([127.0.0.1]:42753 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKJD9-0002AW-HX for submit@debbugs.gnu.org; Tue, 15 Oct 2019 05:33:48 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57365) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKJD7-0002AJ-Ng for 37755@debbugs.gnu.org; Tue, 15 Oct 2019 05:33:45 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:43612) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iKJD2-0004WW-JO; Tue, 15 Oct 2019 05:33:40 -0400 Received: from [176.228.60.248] (port=1335 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iKJD1-0000dM-9e; Tue, 15 Oct 2019 05:33:40 -0400 Date: Tue, 15 Oct 2019 12:33:31 +0300 Message-Id: <83a7a2gxp0.fsf@gnu.org> From: Eli Zaretskii To: Carlos Pita In-reply-to: (message from Carlos Pita on Mon, 14 Oct 2019 23:30:08 -0300) Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Carlos Pita > Date: Mon, 14 Oct 2019 23:30:08 -0300 > > In fringe.c you have init_fringe_bitmap with this structure: > > ``` > #if defined (HAVE_X_WINDOWS) > ... > #ifdef USE_CAIRO > ... > #endif > ... > #endif > #ifdef HAVE_NTGUI > ... > #endif > if (!once_p) > { > .... > rif->define_fringe_bitmap (...) > .... > } > ``` > > Now, this is backend specific code that should be moved behind the > redisplay_interface. Yes, it should. > It seems to me that the obvious candidate to host that code is > define_fringe_bitmap. No, I think we need another interface, as define_fringe_bitmap is used directly from other places. From debbugs-submit-bounces@debbugs.gnu.org Tue Oct 15 15:04:29 2019 Received: (at 37755) by debbugs.gnu.org; 15 Oct 2019 19:04:29 +0000 Received: from localhost ([127.0.0.1]:44848 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKS7R-00045u-1k for submit@debbugs.gnu.org; Tue, 15 Oct 2019 15:04:29 -0400 Received: from mail-yb1-f181.google.com ([209.85.219.181]:33124) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKS7P-00045d-HB for 37755@debbugs.gnu.org; Tue, 15 Oct 2019 15:04:28 -0400 Received: by mail-yb1-f181.google.com with SMTP id h7so4852424ybp.0 for <37755@debbugs.gnu.org>; Tue, 15 Oct 2019 12:04:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Ft+dBxliVvhhlsuMushpO3tygv+T8TFJIkZ2Ls8EQmo=; b=NKs4z/6UNgioeeZ5TmzY7YRE1j5Qyd6mF2iiQPzGXVV5X6DRcsg3NhW8dzJm5d4l25 0rQi9Eiujq9csTXkyY1VZAyOAAdoKGRqlicMg+K84oFL1Q9UInrAi4rOEACwOhh9BPWd 7/baIG/eS4WaZ0LwQJMIrmSiamcSh6jp3pBVSZVoqnEQP2VhvGvaJoAzLTlnmbUQ8cbY sIT1TZVyppy9PEdM0dMQAbRP1blCqGbhjo49vCRtxAMOXS+dPw6FzZUx/tEK81ufY8Kx aqcorJuyoRGUAL8Dj5Rj5fgUBBZ28WqfIqUE/7CcVqIXRpS5mcQjO1b99lMm6yJckuL4 X3jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Ft+dBxliVvhhlsuMushpO3tygv+T8TFJIkZ2Ls8EQmo=; b=XWmaR4my3C0GfIRiulIR3dsyuBseyNT4OwiLbQUtwrrxwLqXvFshZc83Vo51lotJRp euSt6DAQu5MAOGfsayQbiHErUAaM1x9/XG31ZlfAGAdYIVuK0kdzuUB9F+E56Ggkb8we eFILqEFYdm+2X5RpE9jgqVDVG8dMPsQRn7I+UpTbBDLy7Ex5fXkdVzYNGdrJYYZ+DRqf 9NqRGi/7U2Qa+ZRs2ncQl+9lKlZfwJamBCFpXQvN4D6aDwl08fDPkQ/YhOdmpVk/NSKE mS/9tn1MhtR8tdvEpSyqIxTC86vm3ZxzWsvxEf5OGZopMjAhHzIcHV4pns5kJ+EnbTIk Oe1g== X-Gm-Message-State: APjAAAXSZGjZLPke3mtfjHQUzQAittjhm4Wfg4+qs62xGfZcIFWyYyMl PclKnC4iCeD5Ats6BZJtqpo1JC2u0hLL8AF/57c= X-Google-Smtp-Source: APXvYqxku8JJrm9WXR21mFGKHwKwEUjTuo5GCX9kSEjW7FH/EB2dNk4sGwQ6rX2HTT1fNUsEREYk+CVyfGHOa5PFhFY= X-Received: by 2002:a25:5542:: with SMTP id j63mr24645774ybb.76.1571166261512; Tue, 15 Oct 2019 12:04:21 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> In-Reply-To: <83a7a2gxp0.fsf@gnu.org> From: Carlos Pita Date: Tue, 15 Oct 2019 16:04:09 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) (Sorry, forgot to CC debbugs, resending all together below) Hi Eli, I've sketched the tree of define/init calls below and I believe I pretty much understand how the initialization sequence works now and I'm ready to think about how to properly extend the redisplay interface in order to include init_fringe_bitmap. But could you check that my understanding of the flow is sound? # On emacs startup initialize all standard bitmaps but # postponing rif->define_fringe_bitmap until frame creation init_fringe_once init_fringe_once_for_pdumper for each standard bitmap init_fringe_bitmap (oncep = 1) since oncep: do not try to destroy previous since !rif: do not rif->define_fringe_bitmap # When a frame is created, actually call rif->define_fringe_bitmap # for each standard bitmap and also for lisp defined # bitmaps that were created in a daemon with no frame / rif gui_init_fringe (I assume this is called once per frame) for each standard bitmap rif->define_fringe_bitmap for each additional bitmap (recently introduced by [1]) rif->define_fringe_bitmap # When defined from lisp do both steps at once (init and rif->define) # except that we're in daemon with no frame / rif define-fringe-bitmap (lisp) init_fringe_bitmap (oncep = 0) when rif && !oncep: since !oncep: do destroy previous (if any) since rif: do rif->define_fringe_bitmap (if not in daemon) Also, I understand the roles of init_fringe_bitmap and define_fringe_bitmap as: init_fringe_bitmap Initialize bitmap as far as possible without assuming there is a rif/frame available. For example, bit shuffling, endianness stuff. define_fringe_bitmap Do the remaining, backend specific, initialization, which is now possible because we have a rif/frame. For example, create Cairo surfaces. Now I see a problem here: abstracting from the platform/backend by encapsulating platform/backend related logic in the rif is only possible when there is a rif at hand! And there is no rif when there is no frame. So that's probably the reason why quite a few platform-specific assumptions have leaked into fringe.c. The sad part is how coupled are those bit manipulations to those backends, it's not like there is some platform-specific part first and then a backend-specific part, because both are too intermingled and they logically belong together. So I'm again tempted to move init into define, I don't think there is any real gain in splitting the initialization this way, it's not like the initial part is time consuming or resource intensive so we better do it ASAP or whatever and, as I've said, it neither provides an orthogonal abstraction, there is no cartesian product of platforms and backends here, so to speak. And part of the complexity of the initialization sequence above is due to this split. What do you think? I'll be sending a patch quite soon. --- [1] [PATCH] Fix initialization of user-defined fringe bitmaps in daemon On Tue, Oct 15, 2019 at 6:33 AM Eli Zaretskii wrote: > > > From: Carlos Pita > > Date: Mon, 14 Oct 2019 23:30:08 -0300 > > > > In fringe.c you have init_fringe_bitmap with this structure: > > > > ``` > > #if defined (HAVE_X_WINDOWS) > > ... > > #ifdef USE_CAIRO > > ... > > #endif > > ... > > #endif > > #ifdef HAVE_NTGUI > > ... > > #endif > > if (!once_p) > > { > > .... > > rif->define_fringe_bitmap (...) > > .... > > } > > ``` > > > > Now, this is backend specific code that should be moved behind the > > redisplay_interface. > > Yes, it should. > > > It seems to me that the obvious candidate to host that code is > > define_fringe_bitmap. > > No, I think we need another interface, as define_fringe_bitmap is used > directly from other places. From debbugs-submit-bounces@debbugs.gnu.org Tue Oct 15 15:45:41 2019 Received: (at 37755) by debbugs.gnu.org; 15 Oct 2019 19:45:41 +0000 Received: from localhost ([127.0.0.1]:44899 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKSlJ-00059x-0N for submit@debbugs.gnu.org; Tue, 15 Oct 2019 15:45:41 -0400 Received: from mail-yw1-f65.google.com ([209.85.161.65]:37981) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKSlG-00059j-5Z for 37755@debbugs.gnu.org; Tue, 15 Oct 2019 15:45:38 -0400 Received: by mail-yw1-f65.google.com with SMTP id s6so7781414ywe.5 for <37755@debbugs.gnu.org>; Tue, 15 Oct 2019 12:45:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=V2tQC4TFO5r6VAfB9Sd7CrGDpJeU24/465iSDME/l8s=; b=tmfGnRYCNZ/Ttph4XUsJWO9+59N66TpVp2IhJUGdmI8nR89CfoOdClfZUrv8lzy5J7 c5kLT+iqAVg2rLJLJsmTsWevbyFwl+NHMQPoX+8xysBcl0oA/hZeKMTBmP/3BFhPjbHV yHmz8/5K5OahSunhBvZeb3/xChh7KqRWaCM/oqGh4ct/8ob7nA0O5IKTkOyhmL/TrD8m 24E+zUltZD3/nCUzhuuwjNaAGvuZV5GEF3uGQgkC5D72gfFljplRrEsCaY4H2HEx6GuQ Gd61/HI6L0EX2ZSsK6YL46ww4NZS9HcLl/NSW4l/+AnEcVI8mffe2OtjVigMqEhnG2es xm8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=V2tQC4TFO5r6VAfB9Sd7CrGDpJeU24/465iSDME/l8s=; b=Ast3gVCwsyA7yeJ3lXY3Ro/UnUP8BKJuhwsQqvY2IruY6OK57Ov5ovS98iCR50vcoE hPTc4vhIVY/GlolY2TMKVACc4tOtMonCKYsRTaYhoL6dctStB4x/6acHG45Jf5okIOk/ tx4iUEzFiPiLREBWyl12K2csO1OIk8SJQSntNjLx789L7DpCUxJFxYqMYCxa4R7u7Mr6 ZSPriUJeWZ6YHLukhIt2UwDnLxIAWAXbsfhuGXzpLXpTn5vMtFrCD9IoCVo3NVtuIJ5k 7w5P40Qu84CgIxdKSREc8nwU/3T/29tByGNtf6BZfDP7L3Dgr5Hs58UVXKILl2RcdF4D CWkQ== X-Gm-Message-State: APjAAAX7MLf+As+ovyyLGci+UIhMmhXRkNYqrFJlXYeo1PXWwr5h3f+a hHKICH0hT2iX5OysAGh7Fyqu1bJ07uywpHDLdfs= X-Google-Smtp-Source: APXvYqwOZ+WRb2wJ3Hv34qRhdl7/lAFt2QjnSZaBDaAw5A3a27H0NDCqGxu3GxYNm6ezaDdvgQlvOykbWeoaUAC0vVs= X-Received: by 2002:a81:ab42:: with SMTP id d2mr17722399ywk.64.1571168732259; Tue, 15 Oct 2019 12:45:32 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> In-Reply-To: From: Carlos Pita Date: Tue, 15 Oct 2019 16:45:20 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: multipart/mixed; boundary="0000000000002ba3ea0594f83aa1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000002ba3ea0594f83aa1 Content-Type: text/plain; charset="UTF-8" This is the modified initialization logic implemented by the attached patch: # When a frame is created, actually call rif->define_fringe_bitmap # for each standard bitmap and also for lisp defined # bitmaps that were created in a daemon with no frame / rif gui_init_fringe (I assume this is called once per frame) for each standard bitmap rif->define_fringe_bitmap for each additional bitmap (recently introduced by [1]) rif->define_fringe_bitmap # When defined from lisp call rif->define_fringe_bitmap # except that we're in daemon with no frame / rif define-fringe-bitmap (lisp) when rif: rif->define_fringe_bitmap Much simpler, don't you think? Also removed ~30 LOCs. Except that I'm overlooking something obvious it seems to do exactly the same, only that the bit shuffling part is postponed until the frame is actually created (that is, moved into rif->define_fringe_bitmap). Some remarks: 1. There was this comment on top of init_fringe_bitmap: "On MAC with big-endian CPU, we need to byte-swap each short". But all the code there were either specific to NTGUI, specific to XWINDOWS or related to bitmap destruction. So nothing remained that could be actually moved into the NS backend. 2. I left the HAVE_NTGUI guard even after moving the relevant code into w32term.c because I'm not sure whether all w32 code share the NTGUI path or not. 3. The previous implementation modified bits as a way of connecting init with define, this was the state passed from one stage to the other. Now, since both parts are done together, there is no need to modify the passed bits array, the array is only required in order to initialize backend-specific structures. Nevertheless, I decided to keep that as it was in order to prevent regressions, but I believe an implementation that preserves the original value of bits would be preferable now that it is indeed possible. In particular, for X the only "backend-specific structure" is an utterly modified bits array (in some cases shorts are converted into chars, that's why I said in #37689 that it's difficult for the upper layer to "split rows" after this kind of manipulations had already taken place). Any reviews would be much appreciated. Best regards -- Carlos --0000000000002ba3ea0594f83aa1 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fringe-refactor-move-platform-specific-code-into-red.patch" Content-Disposition: attachment; filename="0001-Fringe-refactor-move-platform-specific-code-into-red.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1s96tur0 RnJvbSBjNDc5MmIxZDdhZDc5NTdiYjA3MTA3ZDZlNDYxMTczYWI0MmQ4N2E3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtZW1lcGxleCA8Y2FybG9zam9zZXBpdGFAZ21haWwuY29tPgpE YXRlOiBUdWUsIDE1IE9jdCAyMDE5IDE2OjM3OjI0IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gRnJp bmdlIHJlZmFjdG9yOiBtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgaW50byByZWRpc3BsYXkK IGludGVyZmFjZQoKKiBzcmMvZnJpbmdlLmM6IHJlbW92ZSBpbml0X2ZyaW5nZV9iaXRtYXAKKiBz cmMvdzMydGVybS5jOiBhZGQgTlRHVUkgcGFydHMgdG8gdzMyX2RlZmluZV9mcmluZ2VfYml0bWFw Ciogc3JjL3h0ZXJtLmM6CiAgLSBOZXcgaW50ZXJmYWNlIGZ1bmN0aW9uIGZvciBYMTE6IHhfZGVm aW5lX2ZyaW5nZV9iaXRtYXAKICAtIGFkZCBYV0lORE9XUyBwYXJ0cyB0byB4X2RlZmluZV9mcmlu Z2VfYml0bWFwCiAgLSBhZGQgQ0FJUk8gcGFydHMgdG8geF9jcl9kZWZpbmVfZnJpbmdlX2JpdG1h cAoKRGV0YWlsZWQgZGlzY3Vzc2lvbjogaHR0cHM6Ly9kZWJidWdzLmdudS5vcmcvY2dpL2J1Z3Jl cG9ydC5jZ2k/YnVnPTM3NzU1Ci0tLQogc3JjL2ZyaW5nZS5jICB8IDEyOCArKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL3czMnRlcm0uYyB8ICAx MiArKysrKwogc3JjL3h0ZXJtLmMgICB8ICA1OCArKysrKysrKysrKysrKysrKysrKysrLQogMyBm aWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCAxMTggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2ZyaW5nZS5jIGIvc3JjL2ZyaW5nZS5jCmluZGV4IDIyZjNiZGMuLmExN2I2ODQg MTAwNjQ0Ci0tLSBhL3NyYy9mcmluZ2UuYworKysgYi9zcmMvZnJpbmdlLmMKQEAgLTEzODgsMTEy ICsxMzg4LDYgQEAgREVGVU4gKCJkZXN0cm95LWZyaW5nZS1iaXRtYXAiLCBGZGVzdHJveV9mcmlu Z2VfYml0bWFwLCBTZGVzdHJveV9mcmluZ2VfYml0bWFwLAogICByZXR1cm4gUW5pbDsKIH0KIAot Ci0vKiBJbml0aWFsaXplIGJpdG1hcCBiaXQuCi0KLSAgIE9uIFgsIHdlIGJpdC1zd2FwIHRoZSBi dWlsdC1pbiBiaXRtYXBzIGFuZCByZWR1Y2UgYml0bWFwCi0gICBmcm9tIHNob3J0IHRvIGNoYXIg YXJyYXkgaWYgd2lkdGggaXMgPD0gOCBiaXRzLgotCi0gICBPbiBNQUMgd2l0aCBiaWctZW5kaWFu IENQVSwgd2UgbmVlZCB0byBieXRlLXN3YXAgZWFjaCBzaG9ydC4KLQotICAgT24gVzMyIGFuZCBN QUMgKGxpdHRsZSBlbmRpYW4pLCB0aGVyZSdzIG5vIG5lZWQgdG8gZG8gdGhpcy4KLSovCi0KLSNp ZiBkZWZpbmVkIChIQVZFX1hfV0lORE9XUykKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHN3 YXBfbmliYmxlWzE2XSA9IHsKLSAgMHgwLCAweDgsIDB4NCwgMHhjLCAgICAgICAgICAgLyogMDAw MCAxMDAwIDAxMDAgMTEwMCAqLwotICAweDIsIDB4YSwgMHg2LCAweGUsICAgICAgICAgICAvKiAw MDEwIDEwMTAgMDExMCAxMTEwICovCi0gIDB4MSwgMHg5LCAweDUsIDB4ZCwgICAgICAgICAgIC8q IDAwMDEgMTAwMSAwMTAxIDExMDEgKi8KLSAgMHgzLCAweGIsIDB4NywgMHhmfTsgICAgICAgICAg LyogMDAxMSAxMDExIDAxMTEgMTExMSAqLwotI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBIQVZFX1hfV0lORE9XUyAqLwotCi1zdGF0aWMgdm9pZAotaW5pdF9mcmluZ2VfYml0bWFw IChpbnQgd2hpY2gsIHN0cnVjdCBmcmluZ2VfYml0bWFwICpmYiwgaW50IG9uY2VfcCkKLXsKLSAg aWYgKG9uY2VfcCB8fCBmYi0+ZHluYW1pYykKLSAgICB7Ci0jaWYgZGVmaW5lZCAoSEFWRV9YX1dJ TkRPV1MpCi0gICAgICB1bnNpZ25lZCBzaG9ydCAqYml0cyA9IGZiLT5iaXRzOwotICAgICAgaW50 IGo7Ci0KLSNpZmRlZiBVU0VfQ0FJUk8KLSAgICAgIGZvciAoaiA9IDA7IGogPCBmYi0+aGVpZ2h0 OyBqKyspCi0JewotCSAgdW5zaWduZWQgc2hvcnQgYiA9ICpiaXRzOwotI2lmZGVmIFdPUkRTX0JJ R0VORElBTgotCSAgKmJpdHMrKyA9IChiIDw8ICgxNiAtIGZiLT53aWR0aCkpOwotI2Vsc2UKLQkg IGIgPSAodW5zaWduZWQgc2hvcnQpKChzd2FwX25pYmJsZVtiICYgMHhmXSA8PCAxMikKLQkJCSAg ICAgICB8IChzd2FwX25pYmJsZVsoYj4+NCkgJiAweGZdIDw8IDgpCi0JCQkgICAgICAgfCAoc3dh cF9uaWJibGVbKGI+PjgpICYgMHhmXSA8PCA0KQotCQkJICAgICAgIHwgKHN3YXBfbmliYmxlWyhi Pj4xMikgJiAweGZdKSk7Ci0JICAqYml0cysrID0gKGIgPj4gKDE2IC0gZmItPndpZHRoKSk7Ci0j ZW5kaWYKLQl9Ci0jZWxzZSAgLyogbm90IFVTRV9DQUlSTyAqLwotICAgICAgaWYgKGZiLT53aWR0 aCA8PSA4KQotCXsKLQkgIHVuc2lnbmVkIGNoYXIgKmNiaXRzID0gKHVuc2lnbmVkIGNoYXIgKilm Yi0+Yml0czsKLQkgIGZvciAoaiA9IDA7IGogPCBmYi0+aGVpZ2h0OyBqKyspCi0JICAgIHsKLQkg ICAgICB1bnNpZ25lZCBzaG9ydCBiID0gKmJpdHMrKzsKLQkgICAgICB1bnNpZ25lZCBjaGFyIGM7 Ci0JICAgICAgYyA9ICh1bnNpZ25lZCBjaGFyKSgoc3dhcF9uaWJibGVbYiAmIDB4Zl0gPDwgNCkK LQkJCQkgIHwgKHN3YXBfbmliYmxlWyhiPj40KSAmIDB4Zl0pKTsKLQkgICAgICAqY2JpdHMrKyA9 IChjID4+ICg4IC0gZmItPndpZHRoKSk7Ci0JICAgIH0KLQl9Ci0gICAgICBlbHNlCi0JewotCSAg Zm9yIChqID0gMDsgaiA8IGZiLT5oZWlnaHQ7IGorKykKLQkgICAgewotCSAgICAgIHVuc2lnbmVk IHNob3J0IGIgPSAqYml0czsKLQkgICAgICBiID0gKHVuc2lnbmVkIHNob3J0KSgoc3dhcF9uaWJi bGVbYiAmIDB4Zl0gPDwgMTIpCi0JCQkJICAgfCAoc3dhcF9uaWJibGVbKGI+PjQpICYgMHhmXSA8 PCA4KQotCQkJCSAgIHwgKHN3YXBfbmliYmxlWyhiPj44KSAmIDB4Zl0gPDwgNCkKLQkJCQkgICB8 IChzd2FwX25pYmJsZVsoYj4+MTIpICYgMHhmXSkpOwotCSAgICAgIGIgPj49ICgxNiAtIGZiLT53 aWR0aCk7Ci0jaWZkZWYgV09SRFNfQklHRU5ESUFOCi0JICAgICAgYiA9IGJzd2FwXzE2IChiKTsK LSNlbmRpZgotCSAgICAgICpiaXRzKysgPSBiOwotCSAgICB9Ci0JfQotI2VuZGlmIC8qIG5vdCBV U0VfQ0FJUk8gKi8KLSNlbmRpZiAvKiBIQVZFX1hfV0lORE9XUyAqLwotCi0jaWZkZWYgSEFWRV9O VEdVSQotICAgICAgdW5zaWduZWQgc2hvcnQgKmJpdHMgPSBmYi0+Yml0czsKLSAgICAgIGludCBq OwotICAgICAgZm9yIChqID0gMDsgaiA8IGZiLT5oZWlnaHQ7IGorKykKLQl7Ci0JICB1bnNpZ25l ZCBzaG9ydCBiID0gKmJpdHM7Ci0JICBiIDw8PSAoMTYgLSBmYi0+d2lkdGgpOwotCSAgLyogV2lu ZG93cyBpcyBsaXR0bGUtZW5kaWFuLCBzbyB0aGUgbmV4dCBsaW5lIGlzIGFsd2F5cwotCSAgICAg bmVlZGVkLiAgKi8KLQkgIGIgPSAoKGIgPj4gOCkgfCAoYiA8PCA4KSk7Ci0JICAqYml0cysrID0g YjsKLQl9Ci0jZW5kaWYKLSAgICB9Ci0KLSAgaWYgKCFvbmNlX3ApCi0gICAgewotICAgICAgLyog WFhYIElzIFNFTEVDVEVEX0ZSQU1FIE9LIGhlcmU/ICovCi0gICAgICBzdHJ1Y3QgcmVkaXNwbGF5 X2ludGVyZmFjZSAqcmlmID0gRlJBTUVfUklGIChTRUxFQ1RFRF9GUkFNRSAoKSk7Ci0KLSAgICAg IGRlc3Ryb3lfZnJpbmdlX2JpdG1hcCAod2hpY2gpOwotCi0gICAgICBpZiAocmlmICYmIHJpZi0+ ZGVmaW5lX2ZyaW5nZV9iaXRtYXApCi0JcmlmLT5kZWZpbmVfZnJpbmdlX2JpdG1hcCAod2hpY2gs IGZiLT5iaXRzLCBmYi0+aGVpZ2h0LCBmYi0+d2lkdGgpOwotCi0gICAgICBmcmluZ2VfYml0bWFw c1t3aGljaF0gPSBmYjsKLSAgICAgIGlmICh3aGljaCA+PSBtYXhfdXNlZF9mcmluZ2VfYml0bWFw KQotCW1heF91c2VkX2ZyaW5nZV9iaXRtYXAgPSB3aGljaCArIDE7Ci0gICAgfQotfQotCi0KIERF RlVOICgiZGVmaW5lLWZyaW5nZS1iaXRtYXAiLCBGZGVmaW5lX2ZyaW5nZV9iaXRtYXAsIFNkZWZp bmVfZnJpbmdlX2JpdG1hcCwKICAgICAgICAyLCA1LCAwLAogICAgICAgIGRvYzogLyogRGVmaW5l IGZyaW5nZSBiaXRtYXAgQklUTUFQIGZyb20gQklUUyBvZiBzaXplIEhFSUdIVCB4IFdJRFRILgpA QCAtMTYyNSw3ICsxNTE5LDE3IEBAIGxpc3QgKEFMSUdOIFBFUklPRElDKSB3aGVyZSBQRVJJT0RJ QyBub24tbmlsIHNwZWNpZmllcyB0aGF0IHRoZSBiaXRtYXAKIAogICAqeGZiID0gZmI7CiAKLSAg aW5pdF9mcmluZ2VfYml0bWFwIChuLCB4ZmIsIDApOworICAvKiBYWFggSXMgU0VMRUNURURfRlJB TUUgT0sgaGVyZT8gKi8KKyAgc3RydWN0IHJlZGlzcGxheV9pbnRlcmZhY2UgKnJpZiA9IEZSQU1F X1JJRiAoU0VMRUNURURfRlJBTUUgKCkpOworCisgIGRlc3Ryb3lfZnJpbmdlX2JpdG1hcCAobik7 CisKKyAgaWYgKHJpZiAmJiByaWYtPmRlZmluZV9mcmluZ2VfYml0bWFwKQorICAgIHJpZi0+ZGVm aW5lX2ZyaW5nZV9iaXRtYXAgKG4sIHhmYi0+Yml0cywgeGZiLT5oZWlnaHQsIHhmYi0+d2lkdGgp OworCisgIGZyaW5nZV9iaXRtYXBzW25dID0geGZiOworICBpZiAobiA+PSBtYXhfdXNlZF9mcmlu Z2VfYml0bWFwKQorICAgIG1heF91c2VkX2ZyaW5nZV9iaXRtYXAgPSBuICsgMTsKIAogICByZXR1 cm4gYml0bWFwOwogfQpAQCAtMTc0MywxOSArMTY0Nyw5IEBAIG1hcmtfZnJpbmdlX2RhdGEgKHZv aWQpCiAKIC8qIEluaXRpYWxpemUgdGhpcyBtb2R1bGUgd2hlbiBFbWFjcyBzdGFydHMuICAqLwog Ci1zdGF0aWMgdm9pZCBpbml0X2ZyaW5nZV9vbmNlX2Zvcl9wZHVtcGVyICh2b2lkKTsKLQogdm9p ZAogaW5pdF9mcmluZ2Vfb25jZSAodm9pZCkKIHsKLSAgcGR1bXBlcl9kb19ub3dfYW5kX2FmdGVy X2xvYWQgKGluaXRfZnJpbmdlX29uY2VfZm9yX3BkdW1wZXIpOwotfQotCi1zdGF0aWMgdm9pZAot aW5pdF9mcmluZ2Vfb25jZV9mb3JfcGR1bXBlciAodm9pZCkKLXsKLSAgZm9yIChpbnQgYnQgPSBO T19GUklOR0VfQklUTUFQICsgMTsgYnQgPCBNQVhfU1RBTkRBUkRfRlJJTkdFX0JJVE1BUFM7IGJ0 KyspCi0gICAgaW5pdF9mcmluZ2VfYml0bWFwIChidCwgJnN0YW5kYXJkX2JpdG1hcHNbYnRdLCAx KTsKIH0KIAogdm9pZApkaWZmIC0tZ2l0IGEvc3JjL3czMnRlcm0uYyBiL3NyYy93MzJ0ZXJtLmMK aW5kZXggOWRhMDg0NS4uYzQzYWQ4MSAxMDA2NDQKLS0tIGEvc3JjL3czMnRlcm0uYworKysgYi9z cmMvdzMydGVybS5jCkBAIC04MzUsNiArODM1LDE4IEBAIHczMl9kcmF3X2ZyaW5nZV9iaXRtYXAg KHN0cnVjdCB3aW5kb3cgKncsIHN0cnVjdCBnbHlwaF9yb3cgKnJvdywKIHN0YXRpYyB2b2lkCiB3 MzJfZGVmaW5lX2ZyaW5nZV9iaXRtYXAgKGludCB3aGljaCwgdW5zaWduZWQgc2hvcnQgKmJpdHMs IGludCBoLCBpbnQgd2QpCiB7CisjaWZkZWYgSEFWRV9OVEdVSQorICBpbnQgajsKKyAgZm9yIChq ID0gMDsgaiA8IGg7IGorKykKKyAgICB7CisgICAgICB1bnNpZ25lZCBzaG9ydCBiID0gKmJpdHM7 CisgICAgICBiIDw8PSAoMTYgLSB3ZCk7CisgICAgICAvKiBXaW5kb3dzIGlzIGxpdHRsZS1lbmRp YW4sIHNvIHRoZSBuZXh0IGxpbmUgaXMgYWx3YXlzCisgICAgICAgICBuZWVkZWQuICAqLworICAg ICAgYiA9ICgoYiA+PiA4KSB8IChiIDw8IDgpKTsKKyAgICAgICpiaXRzKysgPSBiOworICAgIH0K KyNlbmRpZgogICBpZiAod2hpY2ggPj0gbWF4X2ZyaW5nZV9ibXApCiAgICAgewogICAgICAgaW50 IGkgPSBtYXhfZnJpbmdlX2JtcDsKZGlmZiAtLWdpdCBhL3NyYy94dGVybS5jIGIvc3JjL3h0ZXJt LmMKaW5kZXggNWQ4YjE0OC4uYThjMjk0NCAxMDA2NDQKLS0tIGEvc3JjL3h0ZXJtLmMKKysrIGIv c3JjL3h0ZXJtLmMKQEAgLTU0OCw2ICs1NDgsMTEgQEAgeF9lbmRfY3JfeGxpYl9kcmF3YWJsZSAo c3RydWN0IGZyYW1lICpmLCBHQyBnYykKIAogc3RhdGljIGludCBtYXhfZnJpbmdlX2JtcCA9IDA7 CiBzdGF0aWMgY2Fpcm9fcGF0dGVybl90ICoqZnJpbmdlX2JtcCA9IDA7CitzdGF0aWMgY29uc3Qg dW5zaWduZWQgY2hhciBzd2FwX25pYmJsZVsxNl0gPSB7CisgIDB4MCwgMHg4LCAweDQsIDB4Yywg ICAgICAgICAgIC8qIDAwMDAgMTAwMCAwMTAwIDExMDAgKi8KKyAgMHgyLCAweGEsIDB4NiwgMHhl LCAgICAgICAgICAgLyogMDAxMCAxMDEwIDAxMTAgMTExMCAqLworICAweDEsIDB4OSwgMHg1LCAw eGQsICAgICAgICAgICAvKiAwMDAxIDEwMDEgMDEwMSAxMTAxICovCisgIDB4MywgMHhiLCAweDcs IDB4Zn07ICAgICAgICAgIC8qIDAwMTEgMTAxMSAwMTExIDExMTEgKi8KIAogc3RhdGljIHZvaWQK IHhfY3JfZGVmaW5lX2ZyaW5nZV9iaXRtYXAgKGludCB3aGljaCwgdW5zaWduZWQgc2hvcnQgKmJp dHMsIGludCBoLCBpbnQgd2QpCkBAIC01NTcsNiArNTYyLDIwIEBAIHhfY3JfZGVmaW5lX2ZyaW5n ZV9iaXRtYXAgKGludCB3aGljaCwgdW5zaWduZWQgc2hvcnQgKmJpdHMsIGludCBoLCBpbnQgd2Qp CiAgIGNhaXJvX3BhdHRlcm5fdCAqcGF0dGVybjsKICAgdW5zaWduZWQgY2hhciAqZGF0YTsKIAor ICBmb3IgKGkgPSAwOyBpIDwgaDsgaSsrKQorICAgIHsKKyAgICAgIHVuc2lnbmVkIHNob3J0IGIg PSAqYml0czsKKyNpZmRlZiBXT1JEU19CSUdFTkRJQU4KKyAgICAgICpiaXRzKysgPSAoYiA8PCAo MTYgLSBmYi0+d2lkdGgpKTsKKyNlbHNlCisgICAgICBiID0gKHVuc2lnbmVkIHNob3J0KSgoc3dh cF9uaWJibGVbYiAmIDB4Zl0gPDwgMTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChz d2FwX25pYmJsZVsoYj4+NCkgJiAweGZdIDw8IDgpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IChzd2FwX25pYmJsZVsoYj4+OCkgJiAweGZdIDw8IDQpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IChzd2FwX25pYmJsZVsoYj4+MTIpICYgMHhmXSkpOworICAgICAgKmJpdHMrKyA9 IChiID4+ICgxNiAtIHdkKSk7CisjZW5kaWYKKyAgICB9CisKICAgaWYgKHdoaWNoID49IG1heF9m cmluZ2VfYm1wKQogICAgIHsKICAgICAgIGkgPSBtYXhfZnJpbmdlX2JtcDsKQEAgLTEzOTMsNiAr MTQxMiw0MyBAQCB4X2FmdGVyX3VwZGF0ZV93aW5kb3dfbGluZSAoc3RydWN0IHdpbmRvdyAqdywg c3RydWN0IGdseXBoX3JvdyAqZGVzaXJlZF9yb3cpCiAjZW5kaWYKIH0KIAorc3RhdGljIHZvaWQK K3hfZGVmaW5lX2ZyaW5nZV9iaXRtYXAgKGludCB3aGljaCwgdW5zaWduZWQgc2hvcnQgKmJpdHMs IGludCBoLCBpbnQgd2QpCit7CisgIC8qIE9uIFgsIHdlIGJpdC1zd2FwIHRoZSBidWlsdC1pbiBi aXRtYXBzIGFuZCByZWR1Y2UgYml0bWFwICovCisgIC8qIGZyb20gc2hvcnQgdG8gY2hhciBhcnJh eSBpZiB3aWR0aCBpcyA8PSA4IGJpdHMuICovCisgIGludCBqOworCisgIGlmICh3ZCA8PSA4KQor ICAgIHsKKyAgICAgIHVuc2lnbmVkIGNoYXIgKmNiaXRzID0gKHVuc2lnbmVkIGNoYXIgKiliaXRz OworICAgICAgZm9yIChqID0gMDsgaiA8IGg7IGorKykKKyAgICAgICAgeworICAgICAgICAgIHVu c2lnbmVkIHNob3J0IGIgPSAqYml0cysrOworICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzsKKyAg ICAgICAgICBjID0gKHVuc2lnbmVkIGNoYXIpKChzd2FwX25pYmJsZVtiICYgMHhmXSA8PCA0KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoc3dhcF9uaWJibGVbKGI+PjQpICYgMHhm XSkpOworICAgICAgICAgICpjYml0cysrID0gKGMgPj4gKDggLSB3ZCkpOworICAgICAgICB9Cisg ICAgfQorICBlbHNlCisgICAgeworICAgICAgZm9yIChqID0gMDsgaiA8IGg7IGorKykKKyAgICAg ICAgeworICAgICAgICAgIHVuc2lnbmVkIHNob3J0IGIgPSAqYml0czsKKyAgICAgICAgICBiID0g KHVuc2lnbmVkIHNob3J0KSgoc3dhcF9uaWJibGVbYiAmIDB4Zl0gPDwgMTIpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAoc3dhcF9uaWJibGVbKGI+PjQpICYgMHhmXSA8PCA4KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKHN3YXBfbmliYmxlWyhiPj44KSAmIDB4 Zl0gPDwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChzd2FwX25pYmJsZVso Yj4+MTIpICYgMHhmXSkpOworICAgICAgICAgIGIgPj49ICgxNiAtIHdkKTsKKyNpZmRlZiBXT1JE U19CSUdFTkRJQU4KKyAgICAgICAgICBiID0gYnN3YXBfMTYgKGIpOworI2VuZGlmCisgICAgICAg ICAgKmJpdHMrKyA9IGI7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkCiB4X2Ry YXdfZnJpbmdlX2JpdG1hcCAoc3RydWN0IHdpbmRvdyAqdywgc3RydWN0IGdseXBoX3JvdyAqcm93 LCBzdHJ1Y3QgZHJhd19mcmluZ2VfYml0bWFwX3BhcmFtcyAqcCkKIHsKQEAgLTEzMzYxLDcgKzEz NDE3LDcgQEAgeF9hY3RpdmF0ZV90aW1lb3V0X2F0aW1lciAodm9pZCkKICAgICB4X2NyX2RlZmlu ZV9mcmluZ2VfYml0bWFwLAogICAgIHhfY3JfZGVzdHJveV9mcmluZ2VfYml0bWFwLAogI2Vsc2UK LSAgICAwLCAvKiBkZWZpbmVfZnJpbmdlX2JpdG1hcCAqLworICAgIHhfZGVmaW5lX2ZyaW5nZV9i aXRtYXAsCiAgICAgMCwgLyogZGVzdHJveV9mcmluZ2VfYml0bWFwICovCiAjZW5kaWYKICAgICB4 X2NvbXB1dGVfZ2x5cGhfc3RyaW5nX292ZXJoYW5ncywKLS0gCjIuMjAuMQoK --0000000000002ba3ea0594f83aa1-- From debbugs-submit-bounces@debbugs.gnu.org Tue Oct 15 15:46:56 2019 Received: (at control) by debbugs.gnu.org; 15 Oct 2019 19:46:56 +0000 Received: from localhost ([127.0.0.1]:44903 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKSmV-0005C2-Rq for submit@debbugs.gnu.org; Tue, 15 Oct 2019 15:46:56 -0400 Received: from mail-yw1-f50.google.com ([209.85.161.50]:45138) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKSmU-0005Bq-3H for control@debbugs.gnu.org; Tue, 15 Oct 2019 15:46:54 -0400 Received: by mail-yw1-f50.google.com with SMTP id x65so7771230ywf.12 for ; Tue, 15 Oct 2019 12:46:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=F+gVp3YzeixYK1oyj4ht+Y1oXcBIs5bDQCv7r/2SCho=; b=p41aiRv4498gr47buNKsSP/JWOIijBliEa2olej4QtMfoSrUUlo26/dfdd8AItFC0K p29Hklhyli8h0ogG9ZZ5FDCGJIszKWAvpYy4p4OJzklR9ryAsFXUWX+xDymFzJhUA6zA mJmRCw7mfsub0W7gqwz11BKaHDs8DLj6PeFT3MPWkEM7m7Us8e2z/mIKazxKdEN05gP3 N9SfzG50u+O53vJT3yyksA3R+z22RjwxMI5KwPkSiSrOmQZ9lCoc5yNFFuP/8YDXtdu2 MoEmG3QiNCcCuSkM2yyjELmF2JLvKTHbSJ+qc2RJyzhN725surMXprsAMVMebzXUvbnI iOmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=F+gVp3YzeixYK1oyj4ht+Y1oXcBIs5bDQCv7r/2SCho=; b=Ol1/PDeW5d3Bytw4P2TgKkCEt24fbWmfrpIzfpN4Qmj25tioKSoCRgg3h0Xk9S42yC QTFcza6zrTQV89Krgy6lwywSsLOklt7B+tcvtrBLoXwxQ7MNoQasDadmJOCQEM4Cmm/I L6mjk6LYLJZ+Q035/P7JVQo0V7apI4Jg11mGj150cPA8KEeuPjuggk5MMGDB6jX5hxbE v0z6O3rWDVgoPbuOSreDG+LnzjT/5m+dBUJj3weEI09DxxYmMWCs2X4rqTCXNwPDVnn0 B9ej6O9krdyGllFPnBLHsiTUQNBsgqgHMVdyyZzxt/s053nBEfZnT9I5RCMlJKQMBLEU mJ8A== X-Gm-Message-State: APjAAAXE8E/ddg5K1tsjQU9bzEmXREx0koGbU7Ln8wijMD7naR/gCzE2 qC6KuOoEMmzoZoIRstNFV8QVcJPa9h5siS+gDY0mTu4yAcU= X-Google-Smtp-Source: APXvYqzAQTP+qP4zIXS/4u9QFY+rM/Dd3s80OsEuAfX/K7NU4W88srCvagLtv9lejqUUuLpE0Yp8q/A7mGFX5WOOXfQ= X-Received: by 2002:a81:70d6:: with SMTP id l205mr18891031ywc.297.1571168808241; Tue, 15 Oct 2019 12:46:48 -0700 (PDT) MIME-Version: 1.0 From: Carlos Pita Date: Tue, 15 Oct 2019 16:46:37 -0300 Message-ID: Subject: To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: tags 37755 patch Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (carlosjosepita[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.161.50 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.161.50 listed in wl.mailspike.net] 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders 2.0 BLANK_SUBJECT Subject is present but empty X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) tags 37755 patch From debbugs-submit-bounces@debbugs.gnu.org Wed Oct 16 16:18:35 2019 Received: (at 37755) by debbugs.gnu.org; 16 Oct 2019 20:18:35 +0000 Received: from localhost ([127.0.0.1]:46635 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKpkg-000206-NA for submit@debbugs.gnu.org; Wed, 16 Oct 2019 16:18:35 -0400 Received: from mail-yb1-f195.google.com ([209.85.219.195]:37564) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKpkf-0001zu-KN for 37755@debbugs.gnu.org; Wed, 16 Oct 2019 16:18:34 -0400 Received: by mail-yb1-f195.google.com with SMTP id z125so8256924ybc.4 for <37755@debbugs.gnu.org>; Wed, 16 Oct 2019 13:18:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2t0VJcDuZYZC/E3au1LOgWHVjdO2TdxdTDzfcC3n50o=; b=sfcBVbZwJBCoN527CzROqQxXidPaXEgaZAGsTvIhXolQaVJNmEfvAK6eBREM0HeRRe viujw64IrbRSlvEOcK2rlxyIqnju7r5lm0IiXPB34dJQYKmkUc7Er+cv7Uea7JTv/zJq nVoG2n/n0S7r3lVOQPa7i4fgPfrNzFb7tlXNvYNl4YQ02qsiODM6r7tX8oXdcqYPz5OG TI12M46bq/9kZUec+gtNG5RaCUB23PxPEIZiwPb6Cuqp5unqa9OlyDop+UEFhOxWUdF6 LF9WQhQmFbxrGOhgO/7rClCaHfZDp8bp2o4al4UNMBsQUtnYIvH7v+GMIsWV2o9Ij+nx EcHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2t0VJcDuZYZC/E3au1LOgWHVjdO2TdxdTDzfcC3n50o=; b=JqO3dDc9uqENpSJUPtsYBWXb3ZUjrD7KaQOGRAKosq0ujbINC1duOQGGOwMPO6Lb5M xA1WEeAJpDPPWFoO19GINLWm//AXjw71U+iggLaRZBa9mX8oFjE5iRuwa43Q5v48k/BN 9x2Y4SWnMndZ9aN7LWL2RDD67YGpWdjWx+AmuWS2DE+ukhx6slR/i3e5ZCzV4MyVBRXw TX//pWA7R9oQ+CJYiiDGS5tUyEHISaL0Z8V/npml7mAVXpMhHsjWeXphAmZf9GQLM6Dn CzMgQ3+E2z852WIMYsF0NQGhuyxjjsujjqGEKrCEbM9rHx58QqngeY+KkUCdeVqpwThY HBNg== X-Gm-Message-State: APjAAAUhTWn5iA2uV7BLKOJRzhCAZsoMcas0k4+Bz7x3ltAgAI27dVxJ 5CbN+Cvd7bXdK2him8b4dXEY1xTdXpYrJ/3B4RgKaV+l X-Google-Smtp-Source: APXvYqylXVDrlsHrdwpSlxT6jga7m0XH7UAVoYAW/JvENZTWNMmGDtvceC7wf9FIqrIxybtoXsmr0+JmltmGZEmyK2o= X-Received: by 2002:a25:d015:: with SMTP id h21mr349851ybg.11.1571257107698; Wed, 16 Oct 2019 13:18:27 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> In-Reply-To: From: Carlos Pita Date: Wed, 16 Oct 2019 17:18:16 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: multipart/mixed; boundary="000000000000c17f7d05950ccdd1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000c17f7d05950ccdd1 Content-Type: text/plain; charset="UTF-8" * Improved commit message according to CONTRIBUTE rules. * Made some minor changes to avoid conditional compilation warnings. * I'm aware of some issues when rendering fringe bitmaps (nothing fatal, though) and I'm still debugging these changes, but it would be great if you could review them meanwhile. --000000000000c17f7d05950ccdd1 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fringe-refactor-move-platform-specific-code-into-rif.patch" Content-Disposition: attachment; filename="0001-Fringe-refactor-move-platform-specific-code-into-rif.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1tpttxc0 RnJvbSA3NjEzZTc5MDhmOTkxODcyNmFhNGFlZmNlMTNkMTBmMGUyYzVmYjkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtZW1lcGxleCA8Y2FybG9zam9zZXBpdGFAZ21haWwuY29tPgpE YXRlOiBUdWUsIDE1IE9jdCAyMDE5IDE2OjM3OjI0IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gRnJp bmdlIHJlZmFjdG9yOiBtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgaW50byByaWYKIChCdWcj Mzc3NTUpCgoqIHNyYy9mcmluZ2UuYyAoaW5pdF9mcmluZ2VfYml0bWFwKTogUmVtb3ZlIGl0Lgoq IHNyYy93MzJ0ZXJtLmMgKHczMl9kZWZpbmVfZnJpbmdlX2JpdG1hcCk6IEFkZCBOVEdVSSBwYXJ0 LgoqIHNyYy94dGVybS5jICh4X2RlZmluZV9mcmluZ2VfYml0bWFwKTogTmV3IGludGVyZmFjZSBm dW5jdGlvbiBmb3IgWDExLAphZGQgWFdJTkRPV1MgcGFydC4KKHhfY3JfZGVmaW5lX2ZyaW5nZV9i aXRtYXApOiBBZGQgQ0FJUk8gcGFydC4KLS0tCiBzcmMvZnJpbmdlLmMgIHwgMTI4ICsrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvdzMydGVybS5j IHwgIDEyICsrKysrCiBzcmMveHRlcm0uYyAgIHwgIDYwICsrKysrKysrKysrKysrKysrKysrKyst CiAzIGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDExOCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvZnJpbmdlLmMgYi9zcmMvZnJpbmdlLmMKaW5kZXggMjJmM2JkYy4uYTE3 YjY4NCAxMDA2NDQKLS0tIGEvc3JjL2ZyaW5nZS5jCisrKyBiL3NyYy9mcmluZ2UuYwpAQCAtMTM4 OCwxMTIgKzEzODgsNiBAQCBERUZVTiAoImRlc3Ryb3ktZnJpbmdlLWJpdG1hcCIsIEZkZXN0cm95 X2ZyaW5nZV9iaXRtYXAsIFNkZXN0cm95X2ZyaW5nZV9iaXRtYXAsCiAgIHJldHVybiBRbmlsOwog fQogCi0KLS8qIEluaXRpYWxpemUgYml0bWFwIGJpdC4KLQotICAgT24gWCwgd2UgYml0LXN3YXAg dGhlIGJ1aWx0LWluIGJpdG1hcHMgYW5kIHJlZHVjZSBiaXRtYXAKLSAgIGZyb20gc2hvcnQgdG8g Y2hhciBhcnJheSBpZiB3aWR0aCBpcyA8PSA4IGJpdHMuCi0KLSAgIE9uIE1BQyB3aXRoIGJpZy1l bmRpYW4gQ1BVLCB3ZSBuZWVkIHRvIGJ5dGUtc3dhcCBlYWNoIHNob3J0LgotCi0gICBPbiBXMzIg YW5kIE1BQyAobGl0dGxlIGVuZGlhbiksIHRoZXJlJ3Mgbm8gbmVlZCB0byBkbyB0aGlzLgotKi8K LQotI2lmIGRlZmluZWQgKEhBVkVfWF9XSU5ET1dTKQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNo YXIgc3dhcF9uaWJibGVbMTZdID0gewotICAweDAsIDB4OCwgMHg0LCAweGMsICAgICAgICAgICAv KiAwMDAwIDEwMDAgMDEwMCAxMTAwICovCi0gIDB4MiwgMHhhLCAweDYsIDB4ZSwgICAgICAgICAg IC8qIDAwMTAgMTAxMCAwMTEwIDExMTAgKi8KLSAgMHgxLCAweDksIDB4NSwgMHhkLCAgICAgICAg ICAgLyogMDAwMSAxMDAxIDAxMDEgMTEwMSAqLwotICAweDMsIDB4YiwgMHg3LCAweGZ9OyAgICAg ICAgICAvKiAwMDExIDEwMTEgMDExMSAxMTExICovCi0jZW5kaWYgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIEhBVkVfWF9XSU5ET1dTICovCi0KLXN0YXRpYyB2b2lkCi1pbml0X2ZyaW5nZV9i aXRtYXAgKGludCB3aGljaCwgc3RydWN0IGZyaW5nZV9iaXRtYXAgKmZiLCBpbnQgb25jZV9wKQot ewotICBpZiAob25jZV9wIHx8IGZiLT5keW5hbWljKQotICAgIHsKLSNpZiBkZWZpbmVkIChIQVZF X1hfV0lORE9XUykKLSAgICAgIHVuc2lnbmVkIHNob3J0ICpiaXRzID0gZmItPmJpdHM7Ci0gICAg ICBpbnQgajsKLQotI2lmZGVmIFVTRV9DQUlSTwotICAgICAgZm9yIChqID0gMDsgaiA8IGZiLT5o ZWlnaHQ7IGorKykKLQl7Ci0JICB1bnNpZ25lZCBzaG9ydCBiID0gKmJpdHM7Ci0jaWZkZWYgV09S RFNfQklHRU5ESUFOCi0JICAqYml0cysrID0gKGIgPDwgKDE2IC0gZmItPndpZHRoKSk7Ci0jZWxz ZQotCSAgYiA9ICh1bnNpZ25lZCBzaG9ydCkoKHN3YXBfbmliYmxlW2IgJiAweGZdIDw8IDEyKQot CQkJICAgICAgIHwgKHN3YXBfbmliYmxlWyhiPj40KSAmIDB4Zl0gPDwgOCkKLQkJCSAgICAgICB8 IChzd2FwX25pYmJsZVsoYj4+OCkgJiAweGZdIDw8IDQpCi0JCQkgICAgICAgfCAoc3dhcF9uaWJi bGVbKGI+PjEyKSAmIDB4Zl0pKTsKLQkgICpiaXRzKysgPSAoYiA+PiAoMTYgLSBmYi0+d2lkdGgp KTsKLSNlbmRpZgotCX0KLSNlbHNlICAvKiBub3QgVVNFX0NBSVJPICovCi0gICAgICBpZiAoZmIt PndpZHRoIDw9IDgpCi0JewotCSAgdW5zaWduZWQgY2hhciAqY2JpdHMgPSAodW5zaWduZWQgY2hh ciAqKWZiLT5iaXRzOwotCSAgZm9yIChqID0gMDsgaiA8IGZiLT5oZWlnaHQ7IGorKykKLQkgICAg ewotCSAgICAgIHVuc2lnbmVkIHNob3J0IGIgPSAqYml0cysrOwotCSAgICAgIHVuc2lnbmVkIGNo YXIgYzsKLQkgICAgICBjID0gKHVuc2lnbmVkIGNoYXIpKChzd2FwX25pYmJsZVtiICYgMHhmXSA8 PCA0KQotCQkJCSAgfCAoc3dhcF9uaWJibGVbKGI+PjQpICYgMHhmXSkpOwotCSAgICAgICpjYml0 cysrID0gKGMgPj4gKDggLSBmYi0+d2lkdGgpKTsKLQkgICAgfQotCX0KLSAgICAgIGVsc2UKLQl7 Ci0JICBmb3IgKGogPSAwOyBqIDwgZmItPmhlaWdodDsgaisrKQotCSAgICB7Ci0JICAgICAgdW5z aWduZWQgc2hvcnQgYiA9ICpiaXRzOwotCSAgICAgIGIgPSAodW5zaWduZWQgc2hvcnQpKChzd2Fw X25pYmJsZVtiICYgMHhmXSA8PCAxMikKLQkJCQkgICB8IChzd2FwX25pYmJsZVsoYj4+NCkgJiAw eGZdIDw8IDgpCi0JCQkJICAgfCAoc3dhcF9uaWJibGVbKGI+PjgpICYgMHhmXSA8PCA0KQotCQkJ CSAgIHwgKHN3YXBfbmliYmxlWyhiPj4xMikgJiAweGZdKSk7Ci0JICAgICAgYiA+Pj0gKDE2IC0g ZmItPndpZHRoKTsKLSNpZmRlZiBXT1JEU19CSUdFTkRJQU4KLQkgICAgICBiID0gYnN3YXBfMTYg KGIpOwotI2VuZGlmCi0JICAgICAgKmJpdHMrKyA9IGI7Ci0JICAgIH0KLQl9Ci0jZW5kaWYgLyog bm90IFVTRV9DQUlSTyAqLwotI2VuZGlmIC8qIEhBVkVfWF9XSU5ET1dTICovCi0KLSNpZmRlZiBI QVZFX05UR1VJCi0gICAgICB1bnNpZ25lZCBzaG9ydCAqYml0cyA9IGZiLT5iaXRzOwotICAgICAg aW50IGo7Ci0gICAgICBmb3IgKGogPSAwOyBqIDwgZmItPmhlaWdodDsgaisrKQotCXsKLQkgIHVu c2lnbmVkIHNob3J0IGIgPSAqYml0czsKLQkgIGIgPDw9ICgxNiAtIGZiLT53aWR0aCk7Ci0JICAv KiBXaW5kb3dzIGlzIGxpdHRsZS1lbmRpYW4sIHNvIHRoZSBuZXh0IGxpbmUgaXMgYWx3YXlzCi0J ICAgICBuZWVkZWQuICAqLwotCSAgYiA9ICgoYiA+PiA4KSB8IChiIDw8IDgpKTsKLQkgICpiaXRz KysgPSBiOwotCX0KLSNlbmRpZgotICAgIH0KLQotICBpZiAoIW9uY2VfcCkKLSAgICB7Ci0gICAg ICAvKiBYWFggSXMgU0VMRUNURURfRlJBTUUgT0sgaGVyZT8gKi8KLSAgICAgIHN0cnVjdCByZWRp c3BsYXlfaW50ZXJmYWNlICpyaWYgPSBGUkFNRV9SSUYgKFNFTEVDVEVEX0ZSQU1FICgpKTsKLQot ICAgICAgZGVzdHJveV9mcmluZ2VfYml0bWFwICh3aGljaCk7Ci0KLSAgICAgIGlmIChyaWYgJiYg cmlmLT5kZWZpbmVfZnJpbmdlX2JpdG1hcCkKLQlyaWYtPmRlZmluZV9mcmluZ2VfYml0bWFwICh3 aGljaCwgZmItPmJpdHMsIGZiLT5oZWlnaHQsIGZiLT53aWR0aCk7Ci0KLSAgICAgIGZyaW5nZV9i aXRtYXBzW3doaWNoXSA9IGZiOwotICAgICAgaWYgKHdoaWNoID49IG1heF91c2VkX2ZyaW5nZV9i aXRtYXApCi0JbWF4X3VzZWRfZnJpbmdlX2JpdG1hcCA9IHdoaWNoICsgMTsKLSAgICB9Ci19Ci0K LQogREVGVU4gKCJkZWZpbmUtZnJpbmdlLWJpdG1hcCIsIEZkZWZpbmVfZnJpbmdlX2JpdG1hcCwg U2RlZmluZV9mcmluZ2VfYml0bWFwLAogICAgICAgIDIsIDUsIDAsCiAgICAgICAgZG9jOiAvKiBE ZWZpbmUgZnJpbmdlIGJpdG1hcCBCSVRNQVAgZnJvbSBCSVRTIG9mIHNpemUgSEVJR0hUIHggV0lE VEguCkBAIC0xNjI1LDcgKzE1MTksMTcgQEAgbGlzdCAoQUxJR04gUEVSSU9ESUMpIHdoZXJlIFBF UklPRElDIG5vbi1uaWwgc3BlY2lmaWVzIHRoYXQgdGhlIGJpdG1hcAogCiAgICp4ZmIgPSBmYjsK IAotICBpbml0X2ZyaW5nZV9iaXRtYXAgKG4sIHhmYiwgMCk7CisgIC8qIFhYWCBJcyBTRUxFQ1RF RF9GUkFNRSBPSyBoZXJlPyAqLworICBzdHJ1Y3QgcmVkaXNwbGF5X2ludGVyZmFjZSAqcmlmID0g RlJBTUVfUklGIChTRUxFQ1RFRF9GUkFNRSAoKSk7CisKKyAgZGVzdHJveV9mcmluZ2VfYml0bWFw IChuKTsKKworICBpZiAocmlmICYmIHJpZi0+ZGVmaW5lX2ZyaW5nZV9iaXRtYXApCisgICAgcmlm LT5kZWZpbmVfZnJpbmdlX2JpdG1hcCAobiwgeGZiLT5iaXRzLCB4ZmItPmhlaWdodCwgeGZiLT53 aWR0aCk7CisKKyAgZnJpbmdlX2JpdG1hcHNbbl0gPSB4ZmI7CisgIGlmIChuID49IG1heF91c2Vk X2ZyaW5nZV9iaXRtYXApCisgICAgbWF4X3VzZWRfZnJpbmdlX2JpdG1hcCA9IG4gKyAxOwogCiAg IHJldHVybiBiaXRtYXA7CiB9CkBAIC0xNzQzLDE5ICsxNjQ3LDkgQEAgbWFya19mcmluZ2VfZGF0 YSAodm9pZCkKIAogLyogSW5pdGlhbGl6ZSB0aGlzIG1vZHVsZSB3aGVuIEVtYWNzIHN0YXJ0cy4g ICovCiAKLXN0YXRpYyB2b2lkIGluaXRfZnJpbmdlX29uY2VfZm9yX3BkdW1wZXIgKHZvaWQpOwot CiB2b2lkCiBpbml0X2ZyaW5nZV9vbmNlICh2b2lkKQogewotICBwZHVtcGVyX2RvX25vd19hbmRf YWZ0ZXJfbG9hZCAoaW5pdF9mcmluZ2Vfb25jZV9mb3JfcGR1bXBlcik7Ci19Ci0KLXN0YXRpYyB2 b2lkCi1pbml0X2ZyaW5nZV9vbmNlX2Zvcl9wZHVtcGVyICh2b2lkKQotewotICBmb3IgKGludCBi dCA9IE5PX0ZSSU5HRV9CSVRNQVAgKyAxOyBidCA8IE1BWF9TVEFOREFSRF9GUklOR0VfQklUTUFQ UzsgYnQrKykKLSAgICBpbml0X2ZyaW5nZV9iaXRtYXAgKGJ0LCAmc3RhbmRhcmRfYml0bWFwc1ti dF0sIDEpOwogfQogCiB2b2lkCmRpZmYgLS1naXQgYS9zcmMvdzMydGVybS5jIGIvc3JjL3czMnRl cm0uYwppbmRleCA5ZGEwODQ1Li5jNDNhZDgxIDEwMDY0NAotLS0gYS9zcmMvdzMydGVybS5jCisr KyBiL3NyYy93MzJ0ZXJtLmMKQEAgLTgzNSw2ICs4MzUsMTggQEAgdzMyX2RyYXdfZnJpbmdlX2Jp dG1hcCAoc3RydWN0IHdpbmRvdyAqdywgc3RydWN0IGdseXBoX3JvdyAqcm93LAogc3RhdGljIHZv aWQKIHczMl9kZWZpbmVfZnJpbmdlX2JpdG1hcCAoaW50IHdoaWNoLCB1bnNpZ25lZCBzaG9ydCAq Yml0cywgaW50IGgsIGludCB3ZCkKIHsKKyNpZmRlZiBIQVZFX05UR1VJCisgIGludCBqOworICBm b3IgKGogPSAwOyBqIDwgaDsgaisrKQorICAgIHsKKyAgICAgIHVuc2lnbmVkIHNob3J0IGIgPSAq Yml0czsKKyAgICAgIGIgPDw9ICgxNiAtIHdkKTsKKyAgICAgIC8qIFdpbmRvd3MgaXMgbGl0dGxl LWVuZGlhbiwgc28gdGhlIG5leHQgbGluZSBpcyBhbHdheXMKKyAgICAgICAgIG5lZWRlZC4gICov CisgICAgICBiID0gKChiID4+IDgpIHwgKGIgPDwgOCkpOworICAgICAgKmJpdHMrKyA9IGI7Cisg ICAgfQorI2VuZGlmCiAgIGlmICh3aGljaCA+PSBtYXhfZnJpbmdlX2JtcCkKICAgICB7CiAgICAg ICBpbnQgaSA9IG1heF9mcmluZ2VfYm1wOwpkaWZmIC0tZ2l0IGEvc3JjL3h0ZXJtLmMgYi9zcmMv eHRlcm0uYwppbmRleCA1ZDhiMTQ4Li45NWZiMjVlIDEwMDY0NAotLS0gYS9zcmMveHRlcm0uYwor KysgYi9zcmMveHRlcm0uYwpAQCAtNTQ4LDYgKzU0OCwxMSBAQCB4X2VuZF9jcl94bGliX2RyYXdh YmxlIChzdHJ1Y3QgZnJhbWUgKmYsIEdDIGdjKQogCiBzdGF0aWMgaW50IG1heF9mcmluZ2VfYm1w ID0gMDsKIHN0YXRpYyBjYWlyb19wYXR0ZXJuX3QgKipmcmluZ2VfYm1wID0gMDsKK3N0YXRpYyBj b25zdCB1bnNpZ25lZCBjaGFyIHN3YXBfbmliYmxlWzE2XSA9IHsKKyAgMHgwLCAweDgsIDB4NCwg MHhjLCAgICAgICAgICAgLyogMDAwMCAxMDAwIDAxMDAgMTEwMCAqLworICAweDIsIDB4YSwgMHg2 LCAweGUsICAgICAgICAgICAvKiAwMDEwIDEwMTAgMDExMCAxMTEwICovCisgIDB4MSwgMHg5LCAw eDUsIDB4ZCwgICAgICAgICAgIC8qIDAwMDEgMTAwMSAwMTAxIDExMDEgKi8KKyAgMHgzLCAweGIs IDB4NywgMHhmfTsgICAgICAgICAgLyogMDAxMSAxMDExIDAxMTEgMTExMSAqLwogCiBzdGF0aWMg dm9pZAogeF9jcl9kZWZpbmVfZnJpbmdlX2JpdG1hcCAoaW50IHdoaWNoLCB1bnNpZ25lZCBzaG9y dCAqYml0cywgaW50IGgsIGludCB3ZCkKQEAgLTU1Nyw2ICs1NjIsMjAgQEAgeF9jcl9kZWZpbmVf ZnJpbmdlX2JpdG1hcCAoaW50IHdoaWNoLCB1bnNpZ25lZCBzaG9ydCAqYml0cywgaW50IGgsIGlu dCB3ZCkKICAgY2Fpcm9fcGF0dGVybl90ICpwYXR0ZXJuOwogICB1bnNpZ25lZCBjaGFyICpkYXRh OwogCisgIGZvciAoaSA9IDA7IGkgPCBoOyBpKyspCisgICAgeworICAgICAgdW5zaWduZWQgc2hv cnQgYiA9ICpiaXRzOworI2lmZGVmIFdPUkRTX0JJR0VORElBTgorICAgICAgKmJpdHMrKyA9IChi IDw8ICgxNiAtIHdkKSk7CisjZWxzZQorICAgICAgYiA9ICh1bnNpZ25lZCBzaG9ydCkoKHN3YXBf bmliYmxlW2IgJiAweGZdIDw8IDEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoc3dh cF9uaWJibGVbKGI+PjQpICYgMHhmXSA8PCA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAoc3dhcF9uaWJibGVbKGI+PjgpICYgMHhmXSA8PCA0KQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAoc3dhcF9uaWJibGVbKGI+PjEyKSAmIDB4Zl0pKTsKKyAgICAgICpiaXRzKysgPSAo YiA+PiAoMTYgLSB3ZCkpOworI2VuZGlmCisgICAgfQorCiAgIGlmICh3aGljaCA+PSBtYXhfZnJp bmdlX2JtcCkKICAgICB7CiAgICAgICBpID0gbWF4X2ZyaW5nZV9ibXA7CkBAIC0xMzkzLDYgKzE0 MTIsNDUgQEAgeF9hZnRlcl91cGRhdGVfd2luZG93X2xpbmUgKHN0cnVjdCB3aW5kb3cgKncsIHN0 cnVjdCBnbHlwaF9yb3cgKmRlc2lyZWRfcm93KQogI2VuZGlmCiB9CiAKKyNpZm5kZWYgVVNFX0NB SVJPCitzdGF0aWMgdm9pZAoreF9kZWZpbmVfZnJpbmdlX2JpdG1hcCAoaW50IHdoaWNoLCB1bnNp Z25lZCBzaG9ydCAqYml0cywgaW50IGgsIGludCB3ZCkKK3sKKyAgLyogT24gWCwgd2UgYml0LXN3 YXAgdGhlIGJ1aWx0LWluIGJpdG1hcHMgYW5kIHJlZHVjZSBiaXRtYXAgKi8KKyAgLyogZnJvbSBz aG9ydCB0byBjaGFyIGFycmF5IGlmIHdpZHRoIGlzIDw9IDggYml0cy4gKi8KKyAgaW50IGo7CisK KyAgaWYgKHdkIDw9IDgpCisgICAgeworICAgICAgdW5zaWduZWQgY2hhciAqY2JpdHMgPSAodW5z aWduZWQgY2hhciAqKWJpdHM7CisgICAgICBmb3IgKGogPSAwOyBqIDwgaDsgaisrKQorICAgICAg ICB7CisgICAgICAgICAgdW5zaWduZWQgc2hvcnQgYiA9ICpiaXRzKys7CisgICAgICAgICAgdW5z aWduZWQgY2hhciBjOworICAgICAgICAgIGMgPSAodW5zaWduZWQgY2hhcikoKHN3YXBfbmliYmxl W2IgJiAweGZdIDw8IDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChzd2FwX25p YmJsZVsoYj4+NCkgJiAweGZdKSk7CisgICAgICAgICAgKmNiaXRzKysgPSAoYyA+PiAoOCAtIHdk KSk7CisgICAgICAgIH0KKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBmb3IgKGogPSAwOyBq IDwgaDsgaisrKQorICAgICAgICB7CisgICAgICAgICAgdW5zaWduZWQgc2hvcnQgYiA9ICpiaXRz OworICAgICAgICAgIGIgPSAodW5zaWduZWQgc2hvcnQpKChzd2FwX25pYmJsZVtiICYgMHhmXSA8 PCAxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChzd2FwX25pYmJsZVsoYj4+ NCkgJiAweGZdIDw8IDgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoc3dhcF9u aWJibGVbKGI+PjgpICYgMHhmXSA8PCA0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgKHN3YXBfbmliYmxlWyhiPj4xMikgJiAweGZdKSk7CisgICAgICAgICAgYiA+Pj0gKDE2IC0g d2QpOworI2lmZGVmIFdPUkRTX0JJR0VORElBTgorICAgICAgICAgIGIgPSBic3dhcF8xNiAoYik7 CisjZW5kaWYKKyAgICAgICAgICAqYml0cysrID0gYjsKKyAgICAgICAgfQorICAgIH0KK30KKyNl bmRpZiAvKiBVU0VfQ0FJUk8gKi8KKwogc3RhdGljIHZvaWQKIHhfZHJhd19mcmluZ2VfYml0bWFw IChzdHJ1Y3Qgd2luZG93ICp3LCBzdHJ1Y3QgZ2x5cGhfcm93ICpyb3csIHN0cnVjdCBkcmF3X2Zy aW5nZV9iaXRtYXBfcGFyYW1zICpwKQogewpAQCAtMTMzNjEsNyArMTM0MTksNyBAQCB4X2FjdGl2 YXRlX3RpbWVvdXRfYXRpbWVyICh2b2lkKQogICAgIHhfY3JfZGVmaW5lX2ZyaW5nZV9iaXRtYXAs CiAgICAgeF9jcl9kZXN0cm95X2ZyaW5nZV9iaXRtYXAsCiAjZWxzZQotICAgIDAsIC8qIGRlZmlu ZV9mcmluZ2VfYml0bWFwICovCisgICAgeF9kZWZpbmVfZnJpbmdlX2JpdG1hcCwKICAgICAwLCAv KiBkZXN0cm95X2ZyaW5nZV9iaXRtYXAgKi8KICNlbmRpZgogICAgIHhfY29tcHV0ZV9nbHlwaF9z dHJpbmdfb3ZlcmhhbmdzLAotLSAKMi4yMC4xCgo= --000000000000c17f7d05950ccdd1-- From debbugs-submit-bounces@debbugs.gnu.org Wed Oct 16 18:07:46 2019 Received: (at 37755) by debbugs.gnu.org; 16 Oct 2019 22:07:46 +0000 Received: from localhost ([127.0.0.1]:46720 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKrSL-0004lf-Jm for submit@debbugs.gnu.org; Wed, 16 Oct 2019 18:07:46 -0400 Received: from mail-yw1-f53.google.com ([209.85.161.53]:34269) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKrSJ-0004lQ-GP for 37755@debbugs.gnu.org; Wed, 16 Oct 2019 18:07:44 -0400 Received: by mail-yw1-f53.google.com with SMTP id d192so158390ywa.1 for <37755@debbugs.gnu.org>; Wed, 16 Oct 2019 15:07:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9sczC9VGGAzN4ooqubD45pEiETDX1xcIlqDeRfjP1Ns=; b=qEx5h4a13sLVjZIP0QvB7noqHE4VjkXUspTpf+frFdt5XUIHP7vZ7EDNj2FKUaf9JI ZAc2f6R382zASJlmISWEV829jLausnoX1aX7YSpTA0ROMskv4estP06Gj4KyGs7DVspP GsnnqQpTndWuWDemYETlv+N0IDlPr0NwvcDyTPg2Dr+W0j9vAfatMHiMJcrHBZ/BQBIM jy9/kTPeV71ENKSHbJd04AkABeW1I4fz6Z8is/rgUKdi0/k8P7KMM3Xb8at2d7zZhSym nh4e6DSZl6PROfr1/04ipqxIFQgHAEHcg1855ki0NZ0tML0UbmSma1coY1QiWRJl7klS JG/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9sczC9VGGAzN4ooqubD45pEiETDX1xcIlqDeRfjP1Ns=; b=UzMURiJm2iL9Fs4Vf9BKgdHktyv6lOZOcTUQ22VKW2/yYjmW/VhzohJ63jn0zGWodD 1xwSJrtVYSyyCG/RCb7EZFq8aPqYoTAUVSkTbxl1UK8mSGA9gd9/cPA8dqkyitEtHjXq ctD2fZeAjjKBzFVCXIq9P3pE2tgHH+55QA+OD9vGEvEsehbqyEXZKWjIy7fgeXOOp/OP nRCD0AYnSFgzO7HprOrt0O+EcNsVh/GkUrYb09rBxKKWMxEe6LtY6QbLEXuebw0iRp2Y cK/NbMTuzQRo/u/+YXfwaEzlmdvSiCM5Spo7GPP4vVose8XdrvPOG3rIphU2vyOVZco6 fr4w== X-Gm-Message-State: APjAAAUuegZLHsCJ60foPgQO/lz65zJVRXVycDFgJ5AGwl781/vcpnQS oQwfAZGs3cJffKrQtv3/dsN8JIN2BGROEJEUjmw= X-Google-Smtp-Source: APXvYqzTSCN6bVpGjonFqBMPytnxswkmd+RY3ZIzH+X4j5bSvUVpjbgYhhSGZCvO3efAyC5LmCXb5kTPNez9Q+GrimM= X-Received: by 2002:a81:5088:: with SMTP id e130mr447451ywb.91.1571263657635; Wed, 16 Oct 2019 15:07:37 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> In-Reply-To: From: Carlos Pita Date: Wed, 16 Oct 2019 19:07:26 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: multipart/mixed; boundary="000000000000299c7405950e5496" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000299c7405950e5496 Content-Type: text/plain; charset="UTF-8" Ok, I found the bug. The init part was in general iterating along bits by advancing the pointer (i.e. bits++). When I juxtaposed this part to the define part, that also used bits, then bits was pointing to one past the end of the bitmap and not to the bitmap itself, as expected by the define code. Once diagnosed, it was an easy fix. In detail: 1. For Cairo, I followed my own suggestion above of not modifying bits at all. Both the previous init and define loops are now merged into a single loop that directly writes to the surface data, instead of modifying bits. 2. For X11, bits is the only state propagated between init/define and draw and there was no specific define part before my changes, so the new define is simply the old init. Here bits is obviously modified in order to prepare it for the drawing routine. 3. For Win32, I replaced bits++ with bits[i]. Bits is also modified, although here it's easy to avoid that if so desired because it's only locally needed to initialize the platform-specific bitmap structure then used by the drawing routine. 4. For MacOS/NS, there is nothing to be done since there was no specific init part, as I observed a few posts above. I've cursorily tested this patch both alone and merged with my "hidpi fringe" patches and seems to be working fine for the Cairo backend. The new change amounts to yet another code simplification and an overall ~40 reduction in LOCs. Best regards -- Carlos --000000000000299c7405950e5496 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fringe-refactor-move-platform-specific-code-into-rif.patch" Content-Disposition: attachment; filename="0001-Fringe-refactor-move-platform-specific-code-into-rif.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1ttsna50 RnJvbSAxNjQyOGQ3ZTMyZmE1MzFhMjI2ZDAyNTc4ZjI3NWM2MzQwZDk4NGU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtZW1lcGxleCA8Y2FybG9zam9zZXBpdGFAZ21haWwuY29tPgpE YXRlOiBUdWUsIDE1IE9jdCAyMDE5IDE2OjM3OjI0IC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gRnJp bmdlIHJlZmFjdG9yOiBtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgaW50byByaWYKIChCdWcj Mzc3NTUpCgoqIHNyYy9mcmluZ2UuYyAoaW5pdF9mcmluZ2VfYml0bWFwKTogUmVtb3ZlIGl0Lgoq IHNyYy93MzJ0ZXJtLmMgKHczMl9kZWZpbmVfZnJpbmdlX2JpdG1hcCk6IEFkZCBOVEdVSSBpbml0 IHBhcnQuCiogc3JjL3h0ZXJtLmMgKHhfZGVmaW5lX2ZyaW5nZV9iaXRtYXApOiBOZXcgaW50ZXJm YWNlIGZ1bmN0aW9uIGZvciBYMTEsCmFkZCBYV0lORE9XUyBpbml0IHBhcnQuCih4X2NyX2RlZmlu ZV9mcmluZ2VfYml0bWFwKTogQWRkIENBSVJPIGluaXQgcGFydC4KLS0tCiBzcmMvZnJpbmdlLmMg IHwgMTI4ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBzcmMvdzMydGVybS5jIHwgIDE1ICsrKysrLQogc3JjL3h0ZXJtLmMgICB8ICA2MCArKysrKysr KysrKysrKysrKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCspLCAxMjIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2ZyaW5nZS5jIGIvc3JjL2ZyaW5nZS5jCmlu ZGV4IDIyZjNiZGMuLmExN2I2ODQgMTAwNjQ0Ci0tLSBhL3NyYy9mcmluZ2UuYworKysgYi9zcmMv ZnJpbmdlLmMKQEAgLTEzODgsMTEyICsxMzg4LDYgQEAgREVGVU4gKCJkZXN0cm95LWZyaW5nZS1i aXRtYXAiLCBGZGVzdHJveV9mcmluZ2VfYml0bWFwLCBTZGVzdHJveV9mcmluZ2VfYml0bWFwLAog ICByZXR1cm4gUW5pbDsKIH0KIAotCi0vKiBJbml0aWFsaXplIGJpdG1hcCBiaXQuCi0KLSAgIE9u IFgsIHdlIGJpdC1zd2FwIHRoZSBidWlsdC1pbiBiaXRtYXBzIGFuZCByZWR1Y2UgYml0bWFwCi0g ICBmcm9tIHNob3J0IHRvIGNoYXIgYXJyYXkgaWYgd2lkdGggaXMgPD0gOCBiaXRzLgotCi0gICBP biBNQUMgd2l0aCBiaWctZW5kaWFuIENQVSwgd2UgbmVlZCB0byBieXRlLXN3YXAgZWFjaCBzaG9y dC4KLQotICAgT24gVzMyIGFuZCBNQUMgKGxpdHRsZSBlbmRpYW4pLCB0aGVyZSdzIG5vIG5lZWQg dG8gZG8gdGhpcy4KLSovCi0KLSNpZiBkZWZpbmVkIChIQVZFX1hfV0lORE9XUykKLXN0YXRpYyBj b25zdCB1bnNpZ25lZCBjaGFyIHN3YXBfbmliYmxlWzE2XSA9IHsKLSAgMHgwLCAweDgsIDB4NCwg MHhjLCAgICAgICAgICAgLyogMDAwMCAxMDAwIDAxMDAgMTEwMCAqLwotICAweDIsIDB4YSwgMHg2 LCAweGUsICAgICAgICAgICAvKiAwMDEwIDEwMTAgMDExMCAxMTEwICovCi0gIDB4MSwgMHg5LCAw eDUsIDB4ZCwgICAgICAgICAgIC8qIDAwMDEgMTAwMSAwMTAxIDExMDEgKi8KLSAgMHgzLCAweGIs IDB4NywgMHhmfTsgICAgICAgICAgLyogMDAxMSAxMDExIDAxMTEgMTExMSAqLwotI2VuZGlmICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBIQVZFX1hfV0lORE9XUyAqLwotCi1zdGF0aWMgdm9p ZAotaW5pdF9mcmluZ2VfYml0bWFwIChpbnQgd2hpY2gsIHN0cnVjdCBmcmluZ2VfYml0bWFwICpm YiwgaW50IG9uY2VfcCkKLXsKLSAgaWYgKG9uY2VfcCB8fCBmYi0+ZHluYW1pYykKLSAgICB7Ci0j aWYgZGVmaW5lZCAoSEFWRV9YX1dJTkRPV1MpCi0gICAgICB1bnNpZ25lZCBzaG9ydCAqYml0cyA9 IGZiLT5iaXRzOwotICAgICAgaW50IGo7Ci0KLSNpZmRlZiBVU0VfQ0FJUk8KLSAgICAgIGZvciAo aiA9IDA7IGogPCBmYi0+aGVpZ2h0OyBqKyspCi0JewotCSAgdW5zaWduZWQgc2hvcnQgYiA9ICpi aXRzOwotI2lmZGVmIFdPUkRTX0JJR0VORElBTgotCSAgKmJpdHMrKyA9IChiIDw8ICgxNiAtIGZi LT53aWR0aCkpOwotI2Vsc2UKLQkgIGIgPSAodW5zaWduZWQgc2hvcnQpKChzd2FwX25pYmJsZVti ICYgMHhmXSA8PCAxMikKLQkJCSAgICAgICB8IChzd2FwX25pYmJsZVsoYj4+NCkgJiAweGZdIDw8 IDgpCi0JCQkgICAgICAgfCAoc3dhcF9uaWJibGVbKGI+PjgpICYgMHhmXSA8PCA0KQotCQkJICAg ICAgIHwgKHN3YXBfbmliYmxlWyhiPj4xMikgJiAweGZdKSk7Ci0JICAqYml0cysrID0gKGIgPj4g KDE2IC0gZmItPndpZHRoKSk7Ci0jZW5kaWYKLQl9Ci0jZWxzZSAgLyogbm90IFVTRV9DQUlSTyAq LwotICAgICAgaWYgKGZiLT53aWR0aCA8PSA4KQotCXsKLQkgIHVuc2lnbmVkIGNoYXIgKmNiaXRz ID0gKHVuc2lnbmVkIGNoYXIgKilmYi0+Yml0czsKLQkgIGZvciAoaiA9IDA7IGogPCBmYi0+aGVp Z2h0OyBqKyspCi0JICAgIHsKLQkgICAgICB1bnNpZ25lZCBzaG9ydCBiID0gKmJpdHMrKzsKLQkg ICAgICB1bnNpZ25lZCBjaGFyIGM7Ci0JICAgICAgYyA9ICh1bnNpZ25lZCBjaGFyKSgoc3dhcF9u aWJibGVbYiAmIDB4Zl0gPDwgNCkKLQkJCQkgIHwgKHN3YXBfbmliYmxlWyhiPj40KSAmIDB4Zl0p KTsKLQkgICAgICAqY2JpdHMrKyA9IChjID4+ICg4IC0gZmItPndpZHRoKSk7Ci0JICAgIH0KLQl9 Ci0gICAgICBlbHNlCi0JewotCSAgZm9yIChqID0gMDsgaiA8IGZiLT5oZWlnaHQ7IGorKykKLQkg ICAgewotCSAgICAgIHVuc2lnbmVkIHNob3J0IGIgPSAqYml0czsKLQkgICAgICBiID0gKHVuc2ln bmVkIHNob3J0KSgoc3dhcF9uaWJibGVbYiAmIDB4Zl0gPDwgMTIpCi0JCQkJICAgfCAoc3dhcF9u aWJibGVbKGI+PjQpICYgMHhmXSA8PCA4KQotCQkJCSAgIHwgKHN3YXBfbmliYmxlWyhiPj44KSAm IDB4Zl0gPDwgNCkKLQkJCQkgICB8IChzd2FwX25pYmJsZVsoYj4+MTIpICYgMHhmXSkpOwotCSAg ICAgIGIgPj49ICgxNiAtIGZiLT53aWR0aCk7Ci0jaWZkZWYgV09SRFNfQklHRU5ESUFOCi0JICAg ICAgYiA9IGJzd2FwXzE2IChiKTsKLSNlbmRpZgotCSAgICAgICpiaXRzKysgPSBiOwotCSAgICB9 Ci0JfQotI2VuZGlmIC8qIG5vdCBVU0VfQ0FJUk8gKi8KLSNlbmRpZiAvKiBIQVZFX1hfV0lORE9X UyAqLwotCi0jaWZkZWYgSEFWRV9OVEdVSQotICAgICAgdW5zaWduZWQgc2hvcnQgKmJpdHMgPSBm Yi0+Yml0czsKLSAgICAgIGludCBqOwotICAgICAgZm9yIChqID0gMDsgaiA8IGZiLT5oZWlnaHQ7 IGorKykKLQl7Ci0JICB1bnNpZ25lZCBzaG9ydCBiID0gKmJpdHM7Ci0JICBiIDw8PSAoMTYgLSBm Yi0+d2lkdGgpOwotCSAgLyogV2luZG93cyBpcyBsaXR0bGUtZW5kaWFuLCBzbyB0aGUgbmV4dCBs aW5lIGlzIGFsd2F5cwotCSAgICAgbmVlZGVkLiAgKi8KLQkgIGIgPSAoKGIgPj4gOCkgfCAoYiA8 PCA4KSk7Ci0JICAqYml0cysrID0gYjsKLQl9Ci0jZW5kaWYKLSAgICB9Ci0KLSAgaWYgKCFvbmNl X3ApCi0gICAgewotICAgICAgLyogWFhYIElzIFNFTEVDVEVEX0ZSQU1FIE9LIGhlcmU/ICovCi0g ICAgICBzdHJ1Y3QgcmVkaXNwbGF5X2ludGVyZmFjZSAqcmlmID0gRlJBTUVfUklGIChTRUxFQ1RF RF9GUkFNRSAoKSk7Ci0KLSAgICAgIGRlc3Ryb3lfZnJpbmdlX2JpdG1hcCAod2hpY2gpOwotCi0g ICAgICBpZiAocmlmICYmIHJpZi0+ZGVmaW5lX2ZyaW5nZV9iaXRtYXApCi0JcmlmLT5kZWZpbmVf ZnJpbmdlX2JpdG1hcCAod2hpY2gsIGZiLT5iaXRzLCBmYi0+aGVpZ2h0LCBmYi0+d2lkdGgpOwot Ci0gICAgICBmcmluZ2VfYml0bWFwc1t3aGljaF0gPSBmYjsKLSAgICAgIGlmICh3aGljaCA+PSBt YXhfdXNlZF9mcmluZ2VfYml0bWFwKQotCW1heF91c2VkX2ZyaW5nZV9iaXRtYXAgPSB3aGljaCAr IDE7Ci0gICAgfQotfQotCi0KIERFRlVOICgiZGVmaW5lLWZyaW5nZS1iaXRtYXAiLCBGZGVmaW5l X2ZyaW5nZV9iaXRtYXAsIFNkZWZpbmVfZnJpbmdlX2JpdG1hcCwKICAgICAgICAyLCA1LCAwLAog ICAgICAgIGRvYzogLyogRGVmaW5lIGZyaW5nZSBiaXRtYXAgQklUTUFQIGZyb20gQklUUyBvZiBz aXplIEhFSUdIVCB4IFdJRFRILgpAQCAtMTYyNSw3ICsxNTE5LDE3IEBAIGxpc3QgKEFMSUdOIFBF UklPRElDKSB3aGVyZSBQRVJJT0RJQyBub24tbmlsIHNwZWNpZmllcyB0aGF0IHRoZSBiaXRtYXAK IAogICAqeGZiID0gZmI7CiAKLSAgaW5pdF9mcmluZ2VfYml0bWFwIChuLCB4ZmIsIDApOworICAv KiBYWFggSXMgU0VMRUNURURfRlJBTUUgT0sgaGVyZT8gKi8KKyAgc3RydWN0IHJlZGlzcGxheV9p bnRlcmZhY2UgKnJpZiA9IEZSQU1FX1JJRiAoU0VMRUNURURfRlJBTUUgKCkpOworCisgIGRlc3Ry b3lfZnJpbmdlX2JpdG1hcCAobik7CisKKyAgaWYgKHJpZiAmJiByaWYtPmRlZmluZV9mcmluZ2Vf Yml0bWFwKQorICAgIHJpZi0+ZGVmaW5lX2ZyaW5nZV9iaXRtYXAgKG4sIHhmYi0+Yml0cywgeGZi LT5oZWlnaHQsIHhmYi0+d2lkdGgpOworCisgIGZyaW5nZV9iaXRtYXBzW25dID0geGZiOworICBp ZiAobiA+PSBtYXhfdXNlZF9mcmluZ2VfYml0bWFwKQorICAgIG1heF91c2VkX2ZyaW5nZV9iaXRt YXAgPSBuICsgMTsKIAogICByZXR1cm4gYml0bWFwOwogfQpAQCAtMTc0MywxOSArMTY0Nyw5IEBA IG1hcmtfZnJpbmdlX2RhdGEgKHZvaWQpCiAKIC8qIEluaXRpYWxpemUgdGhpcyBtb2R1bGUgd2hl biBFbWFjcyBzdGFydHMuICAqLwogCi1zdGF0aWMgdm9pZCBpbml0X2ZyaW5nZV9vbmNlX2Zvcl9w ZHVtcGVyICh2b2lkKTsKLQogdm9pZAogaW5pdF9mcmluZ2Vfb25jZSAodm9pZCkKIHsKLSAgcGR1 bXBlcl9kb19ub3dfYW5kX2FmdGVyX2xvYWQgKGluaXRfZnJpbmdlX29uY2VfZm9yX3BkdW1wZXIp OwotfQotCi1zdGF0aWMgdm9pZAotaW5pdF9mcmluZ2Vfb25jZV9mb3JfcGR1bXBlciAodm9pZCkK LXsKLSAgZm9yIChpbnQgYnQgPSBOT19GUklOR0VfQklUTUFQICsgMTsgYnQgPCBNQVhfU1RBTkRB UkRfRlJJTkdFX0JJVE1BUFM7IGJ0KyspCi0gICAgaW5pdF9mcmluZ2VfYml0bWFwIChidCwgJnN0 YW5kYXJkX2JpdG1hcHNbYnRdLCAxKTsKIH0KIAogdm9pZApkaWZmIC0tZ2l0IGEvc3JjL3czMnRl cm0uYyBiL3NyYy93MzJ0ZXJtLmMKaW5kZXggOWRhMDg0NS4uODg4YjczNiAxMDA2NDQKLS0tIGEv c3JjL3czMnRlcm0uYworKysgYi9zcmMvdzMydGVybS5jCkBAIC04MzUsOSArODM1LDIyIEBAIHcz Ml9kcmF3X2ZyaW5nZV9iaXRtYXAgKHN0cnVjdCB3aW5kb3cgKncsIHN0cnVjdCBnbHlwaF9yb3cg KnJvdywKIHN0YXRpYyB2b2lkCiB3MzJfZGVmaW5lX2ZyaW5nZV9iaXRtYXAgKGludCB3aGljaCwg dW5zaWduZWQgc2hvcnQgKmJpdHMsIGludCBoLCBpbnQgd2QpCiB7CisjaWZkZWYgSEFWRV9OVEdV SQorICBpbnQgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgaDsgaSsrKQorICAgIHsKKyAgICAgIHVu c2lnbmVkIHNob3J0IGIgPSBiaXRzW2ldOworICAgICAgYiA8PD0gKDE2IC0gd2QpOworICAgICAg LyogV2luZG93cyBpcyBsaXR0bGUtZW5kaWFuLCBzbyB0aGUgbmV4dCBsaW5lIGlzIGFsd2F5cwor ICAgICAgICAgbmVlZGVkLiAgKi8KKyAgICAgIGIgPSAoKGIgPj4gOCkgfCAoYiA8PCA4KSk7Cisg ICAgICBiaXRzW2ldID0gYjsKKyAgICB9CisjZW5kaWYKICAgaWYgKHdoaWNoID49IG1heF9mcmlu Z2VfYm1wKQogICAgIHsKLSAgICAgIGludCBpID0gbWF4X2ZyaW5nZV9ibXA7CisgICAgICBpID0g bWF4X2ZyaW5nZV9ibXA7CiAgICAgICBtYXhfZnJpbmdlX2JtcCA9IHdoaWNoICsgMjA7CiAgICAg ICBmcmluZ2VfYm1wID0gKEhCSVRNQVAgKikgeHJlYWxsb2MgKGZyaW5nZV9ibXAsIG1heF9mcmlu Z2VfYm1wICogc2l6ZW9mIChIQklUTUFQKSk7CiAgICAgICB3aGlsZSAoaSA8IG1heF9mcmluZ2Vf Ym1wKQpkaWZmIC0tZ2l0IGEvc3JjL3h0ZXJtLmMgYi9zcmMveHRlcm0uYwppbmRleCA1ZDhiMTQ4 Li41Y2IxYjI4IDEwMDY0NAotLS0gYS9zcmMveHRlcm0uYworKysgYi9zcmMveHRlcm0uYwpAQCAt NTQ4LDYgKzU0OCwxMSBAQCB4X2VuZF9jcl94bGliX2RyYXdhYmxlIChzdHJ1Y3QgZnJhbWUgKmYs IEdDIGdjKQogCiBzdGF0aWMgaW50IG1heF9mcmluZ2VfYm1wID0gMDsKIHN0YXRpYyBjYWlyb19w YXR0ZXJuX3QgKipmcmluZ2VfYm1wID0gMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHN3 YXBfbmliYmxlWzE2XSA9IHsKKyAgMHgwLCAweDgsIDB4NCwgMHhjLCAgICAgICAgICAgLyogMDAw MCAxMDAwIDAxMDAgMTEwMCAqLworICAweDIsIDB4YSwgMHg2LCAweGUsICAgICAgICAgICAvKiAw MDEwIDEwMTAgMDExMCAxMTEwICovCisgIDB4MSwgMHg5LCAweDUsIDB4ZCwgICAgICAgICAgIC8q IDAwMDEgMTAwMSAwMTAxIDExMDEgKi8KKyAgMHgzLCAweGIsIDB4NywgMHhmfTsgICAgICAgICAg LyogMDAxMSAxMDExIDAxMTEgMTExMSAqLwogCiBzdGF0aWMgdm9pZAogeF9jcl9kZWZpbmVfZnJp bmdlX2JpdG1hcCAoaW50IHdoaWNoLCB1bnNpZ25lZCBzaG9ydCAqYml0cywgaW50IGgsIGludCB3 ZCkKQEAgLTU3MiwxMCArNTc3LDE4IEBAIHhfY3JfZGVmaW5lX2ZyaW5nZV9iaXRtYXAgKGludCB3 aGljaCwgdW5zaWduZWQgc2hvcnQgKmJpdHMsIGludCBoLCBpbnQgd2QpCiAgIHN0cmlkZSA9IGNh aXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZSAoc3VyZmFjZSk7CiAgIGRhdGEgPSBjYWlyb19p bWFnZV9zdXJmYWNlX2dldF9kYXRhIChzdXJmYWNlKTsKIAotICBmb3IgKGkgPSAwOyBpIDwgaDsg aSsrKQorICBmb3IgKGkgPSAwOyBpIDwgaDsgaSsrLCBkYXRhICs9IHN0cmlkZSkKICAgICB7Ci0g ICAgICAqKCh1bnNpZ25lZCBzaG9ydCAqKSBkYXRhKSA9IGJpdHNbaV07Ci0gICAgICBkYXRhICs9 IHN0cmlkZTsKKyAgICAgIHVuc2lnbmVkIHNob3J0IGIgPSBiaXRzW2ldOworI2lmZGVmIFdPUkRT X0JJR0VORElBTgorICAgICAgKigodW5zaWduZWQgc2hvcnQgKikgZGF0YSkgPSAoYiA8PCAoMTYg LSB3ZCkpOworI2Vsc2UKKyAgICAgIGIgPSAodW5zaWduZWQgc2hvcnQpKChzd2FwX25pYmJsZVti ICYgMHhmXSA8PCAxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKHN3YXBfbmliYmxl WyhiPj40KSAmIDB4Zl0gPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKHN3YXBf bmliYmxlWyhiPj44KSAmIDB4Zl0gPDwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg KHN3YXBfbmliYmxlWyhiPj4xMikgJiAweGZdKSk7CisgICAgICAqKCh1bnNpZ25lZCBzaG9ydCAq KSBkYXRhKSA9IChiID4+ICgxNiAtIHdkKSk7CisjZW5kaWYKICAgICB9CiAKICAgY2Fpcm9fc3Vy ZmFjZV9tYXJrX2RpcnR5IChzdXJmYWNlKTsKQEAgLTEzOTMsNiArMTQwNiw0NSBAQCB4X2FmdGVy X3VwZGF0ZV93aW5kb3dfbGluZSAoc3RydWN0IHdpbmRvdyAqdywgc3RydWN0IGdseXBoX3JvdyAq ZGVzaXJlZF9yb3cpCiAjZW5kaWYKIH0KIAorI2lmbmRlZiBVU0VfQ0FJUk8KK3N0YXRpYyB2b2lk Cit4X2RlZmluZV9mcmluZ2VfYml0bWFwIChpbnQgd2hpY2gsIHVuc2lnbmVkIHNob3J0ICpiaXRz LCBpbnQgaCwgaW50IHdkKQoreworICAvKiBPbiBYLCB3ZSBiaXQtc3dhcCB0aGUgYnVpbHQtaW4g Yml0bWFwcyBhbmQgcmVkdWNlIGJpdG1hcCAqLworICAvKiBmcm9tIHNob3J0IHRvIGNoYXIgYXJy YXkgaWYgd2lkdGggaXMgPD0gOCBiaXRzLiAqLworICBpbnQgajsKKworICBpZiAod2QgPD0gOCkK KyAgICB7CisgICAgICB1bnNpZ25lZCBjaGFyICpjYml0cyA9ICh1bnNpZ25lZCBjaGFyICopYml0 czsKKyAgICAgIGZvciAoaiA9IDA7IGogPCBoOyBqKyspCisgICAgICAgIHsKKyAgICAgICAgICB1 bnNpZ25lZCBzaG9ydCBiID0gKmJpdHMrKzsKKyAgICAgICAgICB1bnNpZ25lZCBjaGFyIGM7Cisg ICAgICAgICAgYyA9ICh1bnNpZ25lZCBjaGFyKSgoc3dhcF9uaWJibGVbYiAmIDB4Zl0gPDwgNCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKHN3YXBfbmliYmxlWyhiPj40KSAmIDB4 Zl0pKTsKKyAgICAgICAgICAqY2JpdHMrKyA9IChjID4+ICg4IC0gd2QpKTsKKyAgICAgICAgfQor ICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGZvciAoaiA9IDA7IGogPCBoOyBqKyspCisgICAg ICAgIHsKKyAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBiID0gKmJpdHM7CisgICAgICAgICAgYiA9 ICh1bnNpZ25lZCBzaG9ydCkoKHN3YXBfbmliYmxlW2IgJiAweGZdIDw8IDEyKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgKHN3YXBfbmliYmxlWyhiPj40KSAmIDB4Zl0gPDwgOCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChzd2FwX25pYmJsZVsoYj4+OCkgJiAw eGZdIDw8IDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoc3dhcF9uaWJibGVb KGI+PjEyKSAmIDB4Zl0pKTsKKyAgICAgICAgICBiID4+PSAoMTYgLSB3ZCk7CisjaWZkZWYgV09S RFNfQklHRU5ESUFOCisgICAgICAgICAgYiA9IGJzd2FwXzE2IChiKTsKKyNlbmRpZgorICAgICAg ICAgICpiaXRzKysgPSBiOworICAgICAgICB9CisgICAgfQorfQorI2VuZGlmIC8qIFVTRV9DQUlS TyAqLworCiBzdGF0aWMgdm9pZAogeF9kcmF3X2ZyaW5nZV9iaXRtYXAgKHN0cnVjdCB3aW5kb3cg KncsIHN0cnVjdCBnbHlwaF9yb3cgKnJvdywgc3RydWN0IGRyYXdfZnJpbmdlX2JpdG1hcF9wYXJh bXMgKnApCiB7CkBAIC0xMzM2MSw3ICsxMzQxMyw3IEBAIHhfYWN0aXZhdGVfdGltZW91dF9hdGlt ZXIgKHZvaWQpCiAgICAgeF9jcl9kZWZpbmVfZnJpbmdlX2JpdG1hcCwKICAgICB4X2NyX2Rlc3Ry b3lfZnJpbmdlX2JpdG1hcCwKICNlbHNlCi0gICAgMCwgLyogZGVmaW5lX2ZyaW5nZV9iaXRtYXAg Ki8KKyAgICB4X2RlZmluZV9mcmluZ2VfYml0bWFwLAogICAgIDAsIC8qIGRlc3Ryb3lfZnJpbmdl X2JpdG1hcCAqLwogI2VuZGlmCiAgICAgeF9jb21wdXRlX2dseXBoX3N0cmluZ19vdmVyaGFuZ3Ms Ci0tIAoyLjIwLjEKCg== --000000000000299c7405950e5496-- From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 20 08:21:58 2019 Received: (at 37755) by debbugs.gnu.org; 20 Oct 2019 12:21:58 +0000 Received: from localhost ([127.0.0.1]:53983 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMADe-0000lx-9R for submit@debbugs.gnu.org; Sun, 20 Oct 2019 08:21:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60119) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMADc-0000lk-H9 for 37755@debbugs.gnu.org; Sun, 20 Oct 2019 08:21:56 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47738) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iMADX-0006hC-Dx; Sun, 20 Oct 2019 08:21:51 -0400 Received: from [176.228.60.248] (port=3357 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iMADU-00081B-OK; Sun, 20 Oct 2019 08:21:49 -0400 Date: Sun, 20 Oct 2019 15:21:37 +0300 Message-Id: <83a79v620e.fsf@gnu.org> From: Eli Zaretskii To: Carlos Pita In-reply-to: (message from Carlos Pita on Wed, 16 Oct 2019 19:07:26 -0300) Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) References: <83a7a2gxp0.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Carlos Pita > Date: Wed, 16 Oct 2019 19:07:26 -0300 > Cc: 37755@debbugs.gnu.org > > The new change amounts to yet another code simplification and an > overall ~40 reduction in LOCs. Sorry, I think I'm missing something here. It looks like you removed the call to init_fringe_bitmap during dumping, and left its equivalent only in define-fringe-bitmap, is that right? If so, I cannot see how this could work, because Emacs needs to have the standard fringe bitmaps (for line truncation, continuation, etc.) be defined even without a call to define-fringe-bitmap. If you start the current master under a debugger after putting a breakpoint in Fdefine_fringe_bitmap, the breakpoint doesn't break, and yet the bitmaps are known and will be displayed as needed. What did I miss? From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 20 11:47:32 2019 Received: (at 37755) by debbugs.gnu.org; 20 Oct 2019 15:47:32 +0000 Received: from localhost ([127.0.0.1]:55135 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMDQa-0005x3-5r for submit@debbugs.gnu.org; Sun, 20 Oct 2019 11:47:32 -0400 Received: from mail-yb1-f172.google.com ([209.85.219.172]:42575) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMDQY-0005wq-Ql for 37755@debbugs.gnu.org; Sun, 20 Oct 2019 11:47:31 -0400 Received: by mail-yb1-f172.google.com with SMTP id 4so3301684ybq.9 for <37755@debbugs.gnu.org>; Sun, 20 Oct 2019 08:47:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=xc3ZBSfO8iCuKtikoIYKUaiMqiEsnvchdsbFUgWVyj8=; b=QQASUI1waLDhaoXO1Lf/18+GmbMwS72OMSCB7IRDISfkmI2HyRplPPPWr7mRReMHJy 6AoizEekLQEK0Ys3U1OfkYS/ZKsTsFby1Sx5R7clltVsn3k4mVCLtY9K1aeQfZUsF4Ug GQbn37yJVa2dVRGcV2FaQVfKeVWzyy/ZF/Xa/2I0dFBLSufXACgiYRb12RFFRNGqUtUA n7ftm/0e7NCBc5Pczui4uewqc06CGmq+p9sZFGu1oKRzWhJ0LWreGXID48nTlThrp8WR Sv7TBwU9BuMCc/a6Q5uJi8Bri18F51t18ddP6FzZyReAXYUShukh6n0wpzCInKKFm8aD lC5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xc3ZBSfO8iCuKtikoIYKUaiMqiEsnvchdsbFUgWVyj8=; b=VnHshOgAdPMjEjLznYrjIBSIaRUg5aXDQnh/YH9tq0aDQ1UGdHwrcDC+/bVa/xODne Tprmsqf8ZTZbeItPPcwreWw9T5C3bWi+uPKKgCEF962vzkZUraxNnDhxnQBvqjK4tbvU +kYKHzMByg/q1mXKjxSyvxAnEMAQDaf8RkV6T3Q2myYCBIdPOUo3pKrSrm7NwYN60iUZ xUQ0HNzYhm/x6pd3nOqPGFelk9ocR/cNSIKJGSHOXl5FwD2CShOgB2YZZSAzsJNeXTEp drSZdl8O1WnSaDoX7jtZJ+MylcSDIz0UMujgVyxSlNsgrzbcW+Le5e9t+shu+df6WbJs LkbQ== X-Gm-Message-State: APjAAAUm/SHDozOc5ksUscp9W/ug/oNRy2Go/eTQQrq5NbhjWrHR/bx1 wCRdYNKW4EWDH3/KI8b5s3AEy7mzOXop85WnZxVjxMHsHZo= X-Google-Smtp-Source: APXvYqxHXplv+xcm7lHcKqgYbnqdqnhWxY7AEUPVhU1p74gl17N6gXxMzzQGdrEWG3AOXKAqB12V6g+03VZyLW/e9mA= X-Received: by 2002:a25:9947:: with SMTP id n7mr12932429ybo.263.1571586445033; Sun, 20 Oct 2019 08:47:25 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> <83a79v620e.fsf@gnu.org> In-Reply-To: <83a79v620e.fsf@gnu.org> From: Carlos Pita Date: Sun, 20 Oct 2019 12:47:13 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Eli, thank you for the review. >It looks like you removed > the call to init_fringe_bitmap during dumping, and left its equivalent > only in define-fringe-bitmap, is that right? > > What did I miss? The call to gui_init_fringe I guess. Also, notice that define_fringe_bitmap is quite different than Fdefine_fringe_bitmap. I suggest you take a look at the modified pseudo code I posted quite a few message above. > Emacs needs to have the standard fringe > bitmaps (for line truncation, continuation, etc.) be defined even > without a call to define-fringe-bitmap. This is indeed the case after applying the patch. Some bit shuffling has been postponed from init_fringe_once to gui_init_fringe, but that's all. Now, regarding the dumping stuff you mention, TBH I'm completely ignorant. So maybe this innocent looking delay of bit shuffling could have some effect, I don't now, but it's a very different thing from not initializing standard bitmaps until define-fringe-bitmap is first called from elisp world. Besides, whatever is missing after the C static initialization part is just this *platform dependent* bit shuffling, which I seriously doubt emacs could make sense of without the appropriate rif at hand, so quite late in the initialization sequence. I even suggested to avoid this destructive manipulation of platform independent bitmaps from the part of the rifs, although I've only followed my suggestion in the case of cairo, which was quite natural and convenient. Best regards -- Carlos From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 20 12:07:27 2019 Received: (at 37755) by debbugs.gnu.org; 20 Oct 2019 16:07:27 +0000 Received: from localhost ([127.0.0.1]:55151 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMDjr-0006Q5-0v for submit@debbugs.gnu.org; Sun, 20 Oct 2019 12:07:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50506) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMDjp-0006Pt-Bn for 37755@debbugs.gnu.org; Sun, 20 Oct 2019 12:07:26 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50232) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iMDjk-0004O7-8n; Sun, 20 Oct 2019 12:07:20 -0400 Received: from [176.228.60.248] (port=2096 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iMDjj-0004Kw-Pg; Sun, 20 Oct 2019 12:07:20 -0400 Date: Sun, 20 Oct 2019 19:07:11 +0300 Message-Id: <83y2xf4d00.fsf@gnu.org> From: Eli Zaretskii To: Carlos Pita In-reply-to: (message from Carlos Pita on Sun, 20 Oct 2019 12:47:13 -0300) Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) References: <83a7a2gxp0.fsf@gnu.org> <83a79v620e.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Carlos Pita > Date: Sun, 20 Oct 2019 12:47:13 -0300 > Cc: 37755@debbugs.gnu.org > > > What did I miss? > > The call to gui_init_fringe I guess. I don't see that call in the patch, nor any changes in gui_init_fringe that would modify its current effect. If you mean the existing calls, then they are only made at run time, which would mean Emacs is dumped without the standard bitmaps? Why is that? > Also, notice that define_fringe_bitmap is quite different than > Fdefine_fringe_bitmap. Sure, but I said define-fringe-bitmap, which is the Lisp name of Fdefine_fringe_bitmap. > I suggest you take a look at the modified pseudo code I posted quite a > few message above. I will, but I'd like to see the full patch as well. > Besides, whatever is missing after the C static initialization part is > just this *platform dependent* bit shuffling, which I seriously doubt > emacs could make sense of without the appropriate rif at hand, so > quite late in the initialization sequence. I even suggested to avoid > this destructive manipulation of platform independent bitmaps from the > part of the rifs, although I've only followed my suggestion in the > case of cairo, which was quite natural and convenient. If RIF is the problem, we could make each terminal backend do this initialization unconditionally at dump time. From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 20 12:32:56 2019 Received: (at 37755) by debbugs.gnu.org; 20 Oct 2019 16:32:56 +0000 Received: from localhost ([127.0.0.1]:55178 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iME8W-00072j-5e for submit@debbugs.gnu.org; Sun, 20 Oct 2019 12:32:56 -0400 Received: from mail-yb1-f174.google.com ([209.85.219.174]:41097) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iME8U-00072K-4y for 37755@debbugs.gnu.org; Sun, 20 Oct 2019 12:32:54 -0400 Received: by mail-yb1-f174.google.com with SMTP id 206so3326372ybc.8 for <37755@debbugs.gnu.org>; Sun, 20 Oct 2019 09:32:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=6IIXJOMYY0fPW2ba3wsXO4HjK5Y9xUzWPqtRyU81T04=; b=jsFeA4iVfGTrFV9Wr6iowOZKzFcqFuhoVbr9stJI8ypHzkKV1uvNnCNG7N59fS8qta kNd3WemQohazpiwWq67QZ9KYParyH82gum+ql61yQz1iRJ0t4Ln/Xw4o0tzHfiJhPJH3 HR3kN5jqJk98NP6PLxiIwBNwn6isyvvVcVzcljdyE71Sv3IsupIQJSxLgyYf+9FQjwhc 2YMfS/gZnMKJMRUhzztTevzSvktlaFG1C9cl1e1/gN4zoGjyasbf5xgN254MRwCgOa8s 1VMwvx2kc88wzbQDCZYJoLue2RjI4btdCYFuRF92B00CHn4z7EmNz+O/Lvuj5SzALcmS NEaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=6IIXJOMYY0fPW2ba3wsXO4HjK5Y9xUzWPqtRyU81T04=; b=MLM+HOvyfkDrCFAeXJ3pvSlLOgieZ+zJVSLam2s7VZYAgHB/LsuienLiIOxGJYddU9 LqDlkTF0IEIu2OOzNF7DW3E4U2eS6X6CNAFxB1JQDtSTbMfn+V/ODVkGEwM0U2GYYVPB q26kA2tvM1slKNz2WobXAC/apC0XvrXsO8R7cTqeMmzyVYLjjptERxuBByTcv4fWFmBN nbYFr5HA8NyyW9ZpFkH0gJzWkeyTnwHHJ0W+0GporBHursTnrefx640WuN1Al9j4wf1P RGZxCd5egD1PglCvLwyqczIs2+OXIang5bYZRNRM1p/EzDACihEsMHLHjUTyMigqFQ9V NFbg== X-Gm-Message-State: APjAAAWJHKx5FXwG9E7pKzFClFgpC+ZnMEDBwpy5KATwXFphLcj4JZqp FR5zlByrQ7FPIIUlYaHFYHTtXqVIJPIRV+ILrnjJyxQtCS8= X-Google-Smtp-Source: APXvYqwdxYPUR30SLIkZ4dpGN5N3cLEQp6v/mf5XpEuR3+OimYPOIuzzYGC2N4gGz9qdhxJBQJZHq1oXewmHXz84U5s= X-Received: by 2002:a25:be48:: with SMTP id d8mr13648557ybm.353.1571589168386; Sun, 20 Oct 2019 09:32:48 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> <83a79v620e.fsf@gnu.org> <83y2xf4d00.fsf@gnu.org> In-Reply-To: <83y2xf4d00.fsf@gnu.org> From: Carlos Pita Date: Sun, 20 Oct 2019 13:32:36 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > I don't see that call in the patch, nor any changes in gui_init_fringe > that would modify its current effect. Because nothing changed in gui_init_fringe itself. It did and does: for (bt = NO_FRINGE_BITMAP + 1; bt < MAX_STANDARD_FRINGE_BITMAPS; bt++) rif->define_fringe_bitmap (bt, fb->bits, fb->height, fb->width); for ( ; bt < max_used_fringe_bitmap; bt++) rif->define_fringe_bitmap (bt, fb->bits, fb->height, fb->width); The change affects rif->define_fringe_bitmap instead. It now does: - Create platform-dependent structures from platform-independent bitmaps. Previously this was divided between init and define as: - Init: manipulate platform-independent bitmaps in a platform-dependent way. - Define: use this platform-dependently shuffled bitmaps to create platform-dependent structures. So the only thing that have moved down the initialization sequence is the bit-shuffling gymnastics which, if any, are done in gui_init_fringe now. > Sure, but I said define-fringe-bitmap, which is the Lisp name of > Fdefine_fringe_bitmap. I meant to remark that they do quite different things not that you mistake one for the other, sorry if I wasn't clear. > > I suggest you take a look at the modified pseudo code I posted quite a > > few message above. > > I will, but I'd like to see the full patch as well. You have already seen it :) > If RIF is the problem, we could make each terminal backend do this > initialization unconditionally at dump time. According to my rationale above, I don't see any problem at all. But, as I have said, I ignore everything about the dumper. Yet, I find it hard to believe that whatever this dumper thing is, it needs the bits to be in little-endian, 8-bit per row format, or any other rif-specific pattern. Hope it's clearer now. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 26 06:39:46 2019 Received: (at 37755) by debbugs.gnu.org; 26 Oct 2019 10:39:46 +0000 Received: from localhost ([127.0.0.1]:39726 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOJU1-0007ps-N2 for submit@debbugs.gnu.org; Sat, 26 Oct 2019 06:39:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51232) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOJU0-0007pe-Kv for 37755@debbugs.gnu.org; Sat, 26 Oct 2019 06:39:44 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39560) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iOJTv-00014s-G0; Sat, 26 Oct 2019 06:39:39 -0400 Received: from [176.228.60.248] (port=1131 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iOJTu-0001jt-RX; Sat, 26 Oct 2019 06:39:39 -0400 Date: Sat, 26 Oct 2019 13:39:27 +0300 Message-Id: <83imobvli8.fsf@gnu.org> From: Eli Zaretskii To: Carlos Pita In-reply-to: (message from Carlos Pita on Sun, 20 Oct 2019 13:32:36 -0300) Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) References: <83a7a2gxp0.fsf@gnu.org> <83a79v620e.fsf@gnu.org> <83y2xf4d00.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Carlos Pita > Date: Sun, 20 Oct 2019 13:32:36 -0300 > Cc: 37755@debbugs.gnu.org > > > If RIF is the problem, we could make each terminal backend do this > > initialization unconditionally at dump time. > > According to my rationale above, I don't see any problem at all. But, > as I have said, I ignore everything about the dumper. Yet, I find it > hard to believe that whatever this dumper thing is, it needs the bits > to be in little-endian, 8-bit per row format, or any other > rif-specific pattern. Sorry, we cannot just ignore the dumping issue. We don't want to waste CPU cycles each startup to regenerate these standard bitmaps. So the fringe bit patterns need to be initialized at dump time and dumped together with all the other stuff we prepare at that time. If I understand correctly, the difficulty you had with doing this at dump time was that frame's RIF was not yet set (because dumping works in batch mode, where redisplay interface is not set to the correct GUI frame type). If so, my suggestion is to call the window-system specific initialization function directly. For example, in the X build, you can add code to syms_of_xterm code to call x_define_fringe_bitmap, and similarly for Cairo, w32, etc. Does this proposal resolve the difficulty? If not, please point out what else is missing. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 26 11:46:27 2019 Received: (at 37755) by debbugs.gnu.org; 26 Oct 2019 15:46:27 +0000 Received: from localhost ([127.0.0.1]:41354 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOOGp-00015I-3p for submit@debbugs.gnu.org; Sat, 26 Oct 2019 11:46:27 -0400 Received: from mail-yb1-f173.google.com ([209.85.219.173]:45500) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOOGo-000157-Dt for 37755@debbugs.gnu.org; Sat, 26 Oct 2019 11:46:26 -0400 Received: by mail-yb1-f173.google.com with SMTP id q143so2317682ybg.12 for <37755@debbugs.gnu.org>; Sat, 26 Oct 2019 08:46:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gTtbO94YGcufj34QL55+YdWXITHNVjNwcbjPfcGeBBU=; b=ra/F6Rhc9hxroSIdCf86xtFBd53xp4E4p+tpfV+CBBUTZZqJQBFNuJPBOrD8FsRT+9 E2uleZomVTBtfk4zWahq7hTXtjolqcYFNbWp+pknMPdRWZ2us0CWIcWVf23XpVyI53/o 7WLVGoh2KQ8SravKrASK0xSs6vTS4G4M4plPorqSCSHot4w7QcWhwYv1wYBJwPikL1c4 dlnQJsMx7OeVh/29bu5JJURtj9OIYLDwcK9FO/QgHPEZP9kR3mP2lrerW2+rwIZ92fnM aokBEWieF51QVhbJFrS6mhBtAwDHPcgAC2WpyBJSHbIWzzcnJIbnn5YDQhcHhRcRvX+a C99A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gTtbO94YGcufj34QL55+YdWXITHNVjNwcbjPfcGeBBU=; b=MVMSvJl0JpGdw5Pb9Te8aAgkIZiROmQp++TBMrHu+5rZRpNS1w2NnWVUKz9xPeTqz/ bEX162mxCWb1TGUiFhtREPg/btleSguI0uIyf0DFxmVJIEvz7NWjGZntr7AE7MYUSdqX dXYBUERhcS2pH6F8nOWE/SqUYoYYJaj6cH1XwAuXvnczRvS2PPmYEOw3uajYz57G0+Ct yrq/oEzo5TMXYaHAxLm4RL/o4cVmWK8FqFyn6COApxVdBfeziZhB0R5KcoYaYqqWOzMb 72HJDf584SduT5KBoksew5C8BjcM/iMNFVNaCFgEBtTZUqtXEkuobFuPW8ngV8sEfKYA nqAw== X-Gm-Message-State: APjAAAWXp2Of4VKoIz33zE0/8zUOHwVmrgPfGrUcRIH3rYgpyMDe/UFz 2RRcUUCVPzVSb5tkBdn3J+ddg93A0BI125F/+fcVVJx1 X-Google-Smtp-Source: APXvYqweXxDW37wscGM7tQtypHVvZbIvvJ/PcoZvobQLoYl6t4t+j26ppyboVtcsIN+a5nO74G81EYy0jHJwNiSrXXA= X-Received: by 2002:a25:e7cf:: with SMTP id e198mr7433430ybh.334.1572104780513; Sat, 26 Oct 2019 08:46:20 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> <83a79v620e.fsf@gnu.org> <83y2xf4d00.fsf@gnu.org> <83imobvli8.fsf@gnu.org> In-Reply-To: <83imobvli8.fsf@gnu.org> From: Carlos Pita Date: Sat, 26 Oct 2019 12:46:08 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: multipart/alternative; boundary="000000000000fe051e0595d22a53" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000fe051e0595d22a53 Content-Type: text/plain; charset="UTF-8" > > > Sorry, we cannot just ignore the dumping issue. We don't want to > waste CPU cycles each startup to regenerate these standard bitmaps. > So the fringe bit patterns need to be initialized at dump time and > dumped together with all the other stuff we prepare at that time. > Ok, I'm not sure about how dumping works, but the patterns that you store are backend specific. Does the dumper take that into account? > > > Does this proposal resolve the difficulty? If not, please point out > what else is missing. > I just thought that the change decoupled and simplified the code, but I can always add an initialization step to the rif, previous to the definition of the actual bitmaps used by the backend. --000000000000fe051e0595d22a53 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Sorry, we cannot just ignore the dumping issue.=C2=A0 We don't want to<= br> waste CPU cycles each startup to regenerate these standard bitmaps.
So the fringe bit patterns need to be initialized at dump time and
dumped together with all the other stuff we prepare at that time.

Ok, I'= m not sure about how dumping works, but the patterns that you store are bac= kend specific. Does the dumper take that into=C2=A0account?


Does this proposal resolve the difficulty?=C2=A0 If not, please point out what else is missing.

I just thought that the change decoupled and simplifie= d the code, but I can always add an initialization step to the rif, previou= s to the definition of the actual bitmaps used by the backend.
--000000000000fe051e0595d22a53-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 26 12:03:43 2019 Received: (at 37755) by debbugs.gnu.org; 26 Oct 2019 16:03:43 +0000 Received: from localhost ([127.0.0.1]:41378 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOOXX-0001Z0-IK for submit@debbugs.gnu.org; Sat, 26 Oct 2019 12:03:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48474) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOOXV-0001Yk-Sn for 37755@debbugs.gnu.org; Sat, 26 Oct 2019 12:03:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42719) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iOOXQ-0008Ja-NP; Sat, 26 Oct 2019 12:03:36 -0400 Received: from [176.228.60.248] (port=2031 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iOOXP-0004TJ-UA; Sat, 26 Oct 2019 12:03:36 -0400 Date: Sat, 26 Oct 2019 19:03:24 +0300 Message-Id: <83r22ztrxv.fsf@gnu.org> From: Eli Zaretskii To: Carlos Pita In-reply-to: (message from Carlos Pita on Sat, 26 Oct 2019 12:46:08 -0300) Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) References: <83a7a2gxp0.fsf@gnu.org> <83a79v620e.fsf@gnu.org> <83y2xf4d00.fsf@gnu.org> <83imobvli8.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Carlos Pita > Date: Sat, 26 Oct 2019 12:46:08 -0300 > Cc: 37755@debbugs.gnu.org > > Sorry, we cannot just ignore the dumping issue. We don't want to > waste CPU cycles each startup to regenerate these standard bitmaps. > So the fringe bit patterns need to be initialized at dump time and > dumped together with all the other stuff we prepare at that time. > > Ok, I'm not sure about how dumping works, but the patterns that you store are backend specific. Does the > dumper take that into account? The pdump file, like the Emacs binary, is architecture-specific. So yes, this is inherently taken into account. > Does this proposal resolve the difficulty? If not, please point out > what else is missing. > > I just thought that the change decoupled and simplified the code, but I can always add an initialization step to > the rif, previous to the definition of the actual bitmaps used by the backend. I don't think you can do that with a RIF, for the reason already mentioned: Emacs is dumped in batch mode, where we have a frame type that doesn't support fringes, and doesn't implement the RIF interfaces you will need. From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 26 12:11:30 2019 Received: (at 37755-close) by debbugs.gnu.org; 26 Oct 2019 16:11:30 +0000 Received: from localhost ([127.0.0.1]:41386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOOf3-0001m4-Oy for submit@debbugs.gnu.org; Sat, 26 Oct 2019 12:11:29 -0400 Received: from mail-yw1-f45.google.com ([209.85.161.45]:44853) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOOf1-0001lo-Rz for 37755-close@debbugs.gnu.org; Sat, 26 Oct 2019 12:11:28 -0400 Received: by mail-yw1-f45.google.com with SMTP id i123so2145803ywe.11 for <37755-close@debbugs.gnu.org>; Sat, 26 Oct 2019 09:11:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OX8coi0/cULPHHY3Er6ZXgAPcl3H1QiZarOKia+T5aQ=; b=JEDSg18qpPVBYzFOAJZR/ZBmuiOtIE/D2+ESACUjpaLlh8H6KcctXAlNYhVxMh74hl DjBYiGwF/sa/GeU5GJSncgTUaPkI+/HgJubcRmAUG+2mFsHbPNhJaZGrRQG9un4Mqx8z n8PAwtuKiOWjXBeiyRLZ20aw4Lrp61esaRdFsWby9aQjF2o1T+cGi/u0pTeOU6iHuSNN 3wIqB+jflcZ6YwA/VdAYOsobvOojt1NjUwPBYucMi/iMyaIs373Bsj1i2l070x7u21z5 6McjQq7PHyqfpBb1Fms/M0rJreSngtkfJ5s3oOYx58bcvyejrk7oUYbQEw0qBI5GmV4h Qplg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OX8coi0/cULPHHY3Er6ZXgAPcl3H1QiZarOKia+T5aQ=; b=FCxkdDrR5B57c47rS866nkKYe1pWu57a5FzVAl/yY9LCn+L4vj40h+002ERwp/7Dok Lkz6G5Dtq/w9pEEOqFRzIRDtBL+T7h+aMzElvgXOXo15BuhnFBAWMRwIuIv4LqJELYv8 MwUmivt7HV3NPggJSQiNNs8T0ST7sI1cWGYj/l5vdv8fjHzAs3uZif9BBRVyCp2IYZaO hsyIpX9FNP6ReWvywEdMLnc7HYJaJaRyRfx5RUfzrCXF94mAuaU257KimV384B3DSo5i XUq5bDZSnh3T404Ccf8ex+FNZqqAOTCRHWPujwKaeG7EtaXe0rHdRS5fk4gOALEevu8e 0Pkw== X-Gm-Message-State: APjAAAWYQQDEOxQnTv+OE8NQXQ73DGzt3SdAYgZ9iqfBaRC1LKPCuzF0 WRCv6XTDu9h5N7eh2X+SkSsgKoqYzK2ihugFYxs= X-Google-Smtp-Source: APXvYqxNwVUQMobIK/m1KpGxCcUyJU9W5EUI6oecDgziRaX0EpX/z7UnDf21Um7avTfzhgLCiJFNiBC8hrw8lcgQsoQ= X-Received: by 2002:a81:59c2:: with SMTP id n185mr6812159ywb.64.1572106282076; Sat, 26 Oct 2019 09:11:22 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> <83a79v620e.fsf@gnu.org> <83y2xf4d00.fsf@gnu.org> <83imobvli8.fsf@gnu.org> <83r22ztrxv.fsf@gnu.org> In-Reply-To: <83r22ztrxv.fsf@gnu.org> From: Carlos Pita Date: Sat, 26 Oct 2019 13:11:09 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: multipart/alternative; boundary="0000000000007e12020595d284b1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755-close Cc: 37755-close@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000007e12020595d284b1 Content-Type: text/plain; charset="UTF-8" > I don't think you can do that with a RIF, for the reason already > mentioned: Emacs is dumped in batch mode, where we have a frame type > that doesn't support fringes, and doesn't implement the RIF interfaces > you will need. > Ok, I'm not eager to rework this, so if you think that avoiding repeating that bit shuffling at the beginning is worth the additional coupling and complexity I trust in your criterion and close this issue. Thanks. > --0000000000007e12020595d284b1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

I don't think you can do that with a RIF, for the reason already
mentioned: Emacs is dumped in batch mode, where we have a frame type
that doesn't support fringes, and doesn't implement the RIF interfa= ces
you will need.

Ok, I'm not eager to rework this, so if you think that avoidi= ng repeating that bit shuffling at the beginning is worth the additional co= upling and complexity I trust in your criterion and close this issue. Thank= s.
--0000000000007e12020595d284b1-- From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 27 10:47:24 2019 Received: (at 37755) by debbugs.gnu.org; 27 Oct 2019 14:47:24 +0000 Received: from localhost ([127.0.0.1]:43375 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOjpC-0001br-0G for submit@debbugs.gnu.org; Sun, 27 Oct 2019 10:47:24 -0400 Received: from mail-yb1-f182.google.com ([209.85.219.182]:44943) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iOjp9-0001bd-Uv for 37755@debbugs.gnu.org; Sun, 27 Oct 2019 10:47:20 -0400 Received: by mail-yb1-f182.google.com with SMTP id w5so2907991ybs.11 for <37755@debbugs.gnu.org>; Sun, 27 Oct 2019 07:47:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XVBityvtVV1J9nWhixIvmweO5UwFUNeYBebP0n3wKjc=; b=L0G/s4lXV2qq73gAq1JNkiIVYg2uZcPlFRBmA3OeF+LXF4292n6WZsDAIcwaI4/jEy emLciqrHQCSGN5JNwYJHBzHTXM5XMxyi2hF6rtkIpTQebUy1m6Y0NulWWbr9C+HUqgv1 iset+uFq5XdHOxSWc7a4kWtOc8S9pGQ+aMbRjiVuZ/TUSLpb4bj3zmxKd+CSaqhb78vY KBm1jwNkWkJ2NOtD+EYID7O6p+FzmKwO49ifVPG1CCnYEIDdhYykZ39BUdLTVgP+aKTq hnhRePiwsImHeC5jFcSIsORDrWCYWj7H47q6gbiUFKdAhFsYaMmGdi2Q09TyJgu/9sTe SuQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=XVBityvtVV1J9nWhixIvmweO5UwFUNeYBebP0n3wKjc=; b=ejJuH4OnDJIgZBqmmJ7NKJy0QPShbUhg7PhZjOtcqQtFEHDxLQh1bzveKnQ7aEEb1H zD/dbFhv6c/FlIiyvv7e8bM9DjuMuso8DWE6n31IdCimoXTMvWXoCusTe9kXG7iQc2Vy spKxgy9ywRM5Qr9XO/xedv/2VKQT84WNQmS8HG2zN0fYDt5dx+CyeVIA9PjUu+nL+guA fzyeYw8cqz8Hl7csBeW0lX+TO+k3xQw3UyrleQ3BBuXrooxuw8G57yeiL5Y+X/gFBBHi O9wt12xbYlNYDKFxgrTNxji7x4upvGazSASk+i4VSmMlF0OG5T9OTYZVtSrtqpR1jzkT NI6w== X-Gm-Message-State: APjAAAVRbIHbyLhGZXnaWa+H+J3Y0VEEIPsWOR0WqOnAQqTlLOvEcG+K DpsV0/PM9UddEUIwAccrwxi0xyAwDUjOu99FCEw= X-Google-Smtp-Source: APXvYqw5qZUbt1o7kGPQqPEdSNj5SkP/BfwjmEdNUyYf9TvK1zJpl1pG3WGRpgjUI9U9apTvDbGpmFske+S8iC8DWDA= X-Received: by 2002:a05:6902:4e4:: with SMTP id w4mr5763495ybs.263.1572187633891; Sun, 27 Oct 2019 07:47:13 -0700 (PDT) MIME-Version: 1.0 References: <83a7a2gxp0.fsf@gnu.org> <83a79v620e.fsf@gnu.org> <83y2xf4d00.fsf@gnu.org> <83imobvli8.fsf@gnu.org> <83r22ztrxv.fsf@gnu.org> In-Reply-To: <83r22ztrxv.fsf@gnu.org> From: Carlos Pita Date: Sun, 27 Oct 2019 11:47:01 -0300 Message-ID: Subject: Re: bug#37755: Logic in init_fringe_bitmap should be moved to backends (maybe rif->define_fringe_bitmap) To: Eli Zaretskii Content-Type: multipart/alternative; boundary="000000000000703c8b0595e575a0" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 37755 Cc: 37755@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000703c8b0595e575a0 Content-Type: text/plain; charset="UTF-8" > > > > > Ok, I'm not sure about how dumping works, but the patterns that you > store are backend specific. Does the > > dumper take that into account? > > The pdump file, like the Emacs binary, is architecture-specific. So > yes, this is inherently taken into account. > I kept thinking about this and there is also the fact that is not only the architecture (I mean x, w32, ns, endianness) that is assumed in that bit shuffling but also, for example, if we have cairo or pure xlib backend, and that's because I'm quite sure that code was written with the input format assumed by the rif (even if the rif still doesn't exist at that point) in mind. Again, I don't know about the dumper but my intuition says there is something potentially wrong in this arrangement. What I proposed is: 1. Static initialization of fringe rif/platform-independent structures, that I guess will be dumped. 2. Prepare. Per-rif initialization of the rif/platform-dependent structures. This shouldn't affect the independent structures, although in some cases the original bit pattern is still destructively changed because it was simpler to keep the existing implementation. 3. Draw. Rendering of the rif/platform-dependent structures to the screen. What you argue for is: 1. Idem. 1'. Init. Initialization of the platform-dependent but rif->independent structures. 2'. Prepare. Initialization of the rif/platform-dependent structures from the platform-dependent but rif->independent structures. 3. Idem. Now 1' is just cheap bit shuffling of some twenty or so standard bitmaps having an average grid of 8x8 bits. Also there are might be bugs if output patterns are not rif specific and the dumper is unaware of that (again I can't say for sure because of my lack of knowledge of the dumper). Moreover, having 1' and 2' merged in 2 may actually speed things up, because there is no need for two separate iterations over the bitmaps, the first one producing the bit pattern for the second one. It's natural to simply iterate over the original pattern and directly produce the input expected by the particular rendering backend. So, having exposed my reasoning as detailed as I could, and once again, are you sure that you want to keep that phase 1' just to save some milli (micro?) seconds, if any? There is a price in code complexity and the risk of coupling fringe.c too much with backend specific logic. Also, suppose that there is a problem with this cairo vs xlib decision hardcoded there, before the dumping happens. One option is to move that xlib vs cairo decision to the rif (that is to 2 or 2' above). And this way you will be converging to an empty 1' and 2'->2. --000000000000703c8b0595e575a0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


> Ok, I'm not sure about how dumping works, but the patterns that yo= u store are backend specific. Does the
> dumper take that into account?

The pdump file, like the Emacs binary, is architecture-specific.=C2=A0 So yes, this is inherently taken into account.

I kept thinking about this and t= here is also the fact that is not only the architecture (I mean x, w32, ns,= endianness) that is assumed in that bit shuffling but also, for example, i= f we have cairo or pure xlib backend, and that's because I'm quite = sure that code was written with the input format assumed by the rif (even i= f the rif still doesn't exist at that point) in mind. Again, I don'= t know about the dumper but my intuition says there is something potentiall= y wrong in this arrangement.

What I proposed is:

1. Static initialization of=C2=A0fringe rif/platform-independent structure= s, that I guess will be dumped.

2. Prepare. Per-rif initialization of the rif/platform-dependent = structures. This shouldn't affect the independent structures, although = in some cases the original bit pattern is still destructively changed becau= se it was simpler to keep the existing implementation.

3. Draw. Rendering of the rif/platform-depen= dent structures to the screen.

What you argue for is:

1. Idem.

1'. I= nit. Initialization of the platform-dependent but rif->independent struc= tures.

2'. Prepare.= =C2=A0Initialization of the rif/plat= form-dependent structures from the platform-dependent but rif->independe= nt structures.

3. Idem.

Now 1' is just cheap bit shuffling of some twenty or so stand= ard bitmaps having an average grid of 8x8 bits. Also there are might be bug= s if output patterns are not rif specific and the dumper is unaware of that= (again I can't say for sure because of my lack of knowledge of the dum= per).
=
M= oreover, having 1' and 2' merged in 2 may=C2=A0actually=C2=A0speed things up, because there is no need for two separate ite= rations over the bitmaps, the first one producing the bit pattern for the s= econd one. It's natural to simply iterate over the original pattern and= directly produce the input expected by the particular rendering backend.

So, havi= ng exposed my reasoning as detailed as I could, and once again, are you sur= e that you want to keep that phase 1' just to save some milli (micro?) = seconds, if any? There is a price in code complexity and the risk of coupli= ng fringe.c too much with backend specific logic. Also, suppose that there = is a problem with this cairo vs xlib decision hardcoded there, before the d= umping happens. One option is to move that xlib vs cairo decision to the ri= f (that is to 2 or 2' above). And this way you will be converging to an= empty 1' and 2'->2.
--000000000000703c8b0595e575a0-- From unknown Wed Jun 18 23:11:36 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 25 Nov 2019 12:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator