From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28429 invoked from network); 28 Jan 2023 00:35:38 -0000 Received: from lists.zx2c4.com (165.227.139.114) by inbox.vuxu.org with ESMTPUTF8; 28 Jan 2023 00:35:38 -0000 Received: by lists.zx2c4.com (ZX2C4 Mail Server) with ESMTP id 4dc7f219; Sat, 28 Jan 2023 00:35:21 +0000 (UTC) Return-Path: Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [2a00:1450:4864:20::536]) by lists.zx2c4.com (ZX2C4 Mail Server) with ESMTPS id 043499bb (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Sat, 28 Jan 2023 00:35:19 +0000 (UTC) Received: by mail-ed1-x536.google.com with SMTP id cw4so1031084edb.13 for ; Fri, 27 Jan 2023 16:35:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mmayer-net.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5UWXfQT2y9jEaLOPmNVGQSjK/lqxWB10FVSFqFaCvpQ=; b=6I2ppB6elRUnbMEL/aRjBwEP3Lce1RCYKeXcnh1f2Dbfm3Vk3Knk/+VYU7yKNHMtyJ QTm7sfkP1vXIJRnfEI+lm0SLXl0YFQwhKqFE5SY89mlAjm2W/GJ5kc0525vQ3TyoYpZB dllJpvt9kSirlvEdg/ARBO6f2+T7kvuQLJpJZQsWlacPGcRVRmDfvn0leKXGL7Klm2Eb DHiQ78UFXxRow0roFB9G6MSY/Wm9sJR9iy5BHJtN0DqSvyYzRhhghatI/k/tqlhIidmi ryamk4dtbGngzbw9f0Cgy19nojo58zyfLS1hNZKi73hikoXr1PbJeBWLu2iJOHeNUA6y Vaxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5UWXfQT2y9jEaLOPmNVGQSjK/lqxWB10FVSFqFaCvpQ=; b=yg9tFb32d4HmTqfchvv40xUVzhxmdk8pIhG64yECTdYY8VGCBaZsE1AmQB2B8xyvGY tWuqjvGlYa+DOwdNEC5kGk7gPmScWqfTZ8cOSgFQmHCUksB3NNOTfSmUdA1kSVqsH4eL bNRGlrAe3Vx6FeReUrjg16C4ws5AF/BBh+VZ0we9ku18UDNDOmbIoeVd9yaDsKZduNV9 OIqugv4hOLnx66JvCa4m4KbuxkcMo4Ywt+W5Zv7O6gvQVhOFmeKYngeYh0+scdY0Bi9n E7AYOuUtcXyFBUigw/UUuCRIpnUDhsBxqW5CBQ8DpBZIgrmmsp5U51WwauNrx07ManiC De3A== X-Gm-Message-State: AFqh2kou4DPyCOIDBFnwaUg1t0MyA7QgAabw8GwM/3xSEgYzHjbtRX7J qm/WaA6A5BFx3Ke/Na6SW/uq2wBrHtTCe7OxCzHOP+tMreKavRckQSk= X-Google-Smtp-Source: AMrXdXs+GIAa1BpdUzacTRyen3n9fUsWvWvH65RAPSC9nY7WRJWyyy/0KCIdkKg5WPRg2PUHiL7Q8LUhnvv9iDxzToI= X-Received: by 2002:a05:6402:2946:b0:49e:45a8:4a4b with SMTP id ed6-20020a056402294600b0049e45a84a4bmr6802220edb.37.1674866119212; Fri, 27 Jan 2023 16:35:19 -0800 (PST) MIME-Version: 1.0 References: <20230127231543.17977-1-code@mmayer.net> <20230127231543.17977-2-code@mmayer.net> In-Reply-To: From: Markus Mayer Date: Fri, 27 Jan 2023 16:35:07 -0800 Message-ID: Subject: Re: [PATCH 1/1] global: provide memrchr implementation for macOS To: Alex Colomar Cc: CGIT List Content-Type: text/plain; charset="UTF-8" X-BeenThere: cgit@lists.zx2c4.com X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: List for cgit developers and users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: cgit-bounces@lists.zx2c4.com Sender: "CGit" Hi Alex, > This code seems overly complex to me. A do-while seems unintuitive when > you're not performing at least 1 iteration, and having an if that is > basically the same operation as the while condition seems weird. Maybe > I'm missing something, but it looks like it can be written more readable as: I have no objections to changing the code. For my initial submission, I figured I'd use an implementation that comes directly from Apple's own open source server. But if the consensus is to tweak the code to make it smaller / faster / more readable, that's alright by me. I only want CGIT to build on macOS. :-) > void * > memrchr(const void *s, int c, size_t n) > { > unsigned char ch; > const unsigned char *cp; > > ch = c; > > cp = s; > for (cp += n; n != 0; n--) { > cp--; > if (*cp == ch) > return (void *) cp; > } > > return NULL; > } Let me play around with this. > Clang produces similar assembly code for both. GCC however produces > smaller code for the for loop. Thanks for the feedback. Regards, -Markus