[{"id":38132,"web_url":"https://patchwork.libcamera.org/comment/38132/","msgid":"<177039369674.607498.9728707345510657999@neptunite.rasen.tech>","date":"2026-02-06T16:01:36","subject":"Re: Improve V4L2CameraFile constructor implementation","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Markus,\n\nQuoting Markus Elfring (2026-02-06 04:25:46)\n> Hello,\n> \n> I suggest to take another look also at implementation details according to\n> the commit “v4l2: v4l2_camera_file: Store file description” from 2021-12-28.\n> https://gitlab.freedesktop.org/camera/libcamera/-/commit/07d5fff29ce96f3456cf74d740b56a46c5cba507#b2c8de5ff31c2c413e72dfb673beb004acd9fbbe_21_27\n> \n> How do you think about to integrate a small source code adjustment\n> like the following?\n\nBesides the fact that this is missing a Signed-off-by tag [0], I don't\nunderstand what this code change aims to achieve. What benefit does the\nappend() have over concatenation with +?\n\n[0] https://libcamera.org/contributing.html#submitting-patches\n\n\nPaul\n\n> \n> \n> diff --git a/src/v4l2/v4l2_camera_file.cpp b/src/v4l2/v4l2_camera_file.cpp\n> index d8fe854b..aa1299ad 100644\n> --- a/src/v4l2/v4l2_camera_file.cpp\n> +++ b/src/v4l2/v4l2_camera_file.cpp\n> @@ -28,17 +28,22 @@ V4L2CameraFile::V4L2CameraFile(int dirfd, const char *path, int efd,\n>                 if (dirfd == AT_FDCWD) {\n>                         char *cwd = getcwd(nullptr, 0);\n>                         if (cwd) {\n> -                               description_ = std::string(cwd) + \"/\";\n> +                               description_ = std::string(cwd);\n> +                               description_.push_back('/');\n>                                 free(cwd);\n>                         } else {\n>                                 description_ = std::string(\"(unreachable)/\");\n>                         }\n>                 } else {\n> -                       description_ = \"(dirfd:\" + std::to_string(dirfd) + \")/\";\n> +                       description_ = std::string(\"(dirfd:\");\n> +                       description_.append(std::to_string(dirfd)).append(\")/\");\n>                 }\n>         }\n>  \n> -       description_ += std::string(path) + \" (fd:\" + std::to_string(efd) + \")\";\n> +       description_.append(std::string(path))\n> +                   .append(\" (fd:\")\n> +                   .append(std::to_string(efd))\n> +                   .push_back(')');\n>  }\n>  \n>  V4L2CameraFile::~V4L2CameraFile()\n> \n> \n> \n> Regards,\n> Markus","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id A398EC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  6 Feb 2026 16:01:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B06C062089;\n\tFri,  6 Feb 2026 17:01:43 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 812C2615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  6 Feb 2026 17:01:42 +0100 (CET)","from neptunite.rasen.tech (unknown\n\t[IPv6:2404:7a81:160:2100:5247:7b72:2b7:10da])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 4BA2F2E0;\n\tFri,  6 Feb 2026 17:00:58 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"TSxZ6sJs\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1770393658;\n\tbh=AIR74JvxlCHNQuyFuCJoyWKp6RdH8EtQABQe8B0eQOE=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=TSxZ6sJsUJRVXxDxc1ps+WhoUgJHGCsGNtjaEFGGI8N/rKf0jF6f/ZGqQY1aV2MDi\n\tgiaSVqUe5IKvfKCiLttp8e6dMU4fMWr34tMji2XKJpFQIopvCGjzGKBNokaln/2Xuc\n\tRMOAZ5HAjsAcplTI3Ypdg8I6u4mAmkrb4G/O5qA0=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<e6fc4a59-7f21-4451-b80b-4ba8ff0e6532@web.de>","References":"<e6fc4a59-7f21-4451-b80b-4ba8ff0e6532@web.de>","Subject":"Re: Improve V4L2CameraFile constructor implementation","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"Markus Elfring <Markus.Elfring@web.de>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Sat, 07 Feb 2026 01:01:36 +0900","Message-ID":"<177039369674.607498.9728707345510657999@neptunite.rasen.tech>","User-Agent":"alot/0.0.0","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":38133,"web_url":"https://patchwork.libcamera.org/comment/38133/","msgid":"<3803cac4-5b51-4261-ba9b-53d2fa98e846@web.de>","date":"2026-02-06T17:12:36","subject":"Re: Improve V4L2CameraFile constructor implementation","submitter":{"id":259,"url":"https://patchwork.libcamera.org/api/people/259/","name":"Markus Elfring","email":"Markus.Elfring@web.de"},"content":"> Besides the fact that this is missing a Signed-off-by tag [0],\n\nThanks for such a reminder.\n\n\n> I don't understand what this code change aims to achieve. What benefit does the\n> append() have over concatenation with +?\n\nVarious information sources provide guidance for a recurring development topic\nlike “Efficient string concatenation in C++”.\nIs there a need to repeat known advices?\n\nRegards,\nMarkus","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 75D9EC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat,  7 Feb 2026 13:29:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A07D262091;\n\tSat,  7 Feb 2026 14:29:17 +0100 (CET)","from mout.web.de (mout.web.de [212.227.17.11])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CAFDE615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  6 Feb 2026 18:12:38 +0100 (CET)","from [192.168.178.29] ([94.31.69.223]) by smtp.web.de (mrweb105\n\t[213.165.67.124]) with ESMTPSA (Nemesis) id 1MaHWx-1wIR8a2bGH-00ODDb;\n\tFri, 06 Feb 2026 18:12:37 +0100"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=web.de header.i=markus.elfring@web.de\n\theader.b=\"RsJpswro\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de;\n\ts=s29768273; t=1770397957; x=1771002757; i=markus.elfring@web.de;\n\tbh=gGiTnbhoS1J6kBzWo/ON3PAbszm0lnxeteGTByWVeFY=;\n\th=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:\n\tReferences:From:In-Reply-To:Content-Type:\n\tContent-Transfer-Encoding:cc:content-transfer-encoding:\n\tcontent-type:date:from:message-id:mime-version:reply-to:subject:\n\tto;\n\tb=RsJpswroj1HOF4xOntn2iDo7MxWBa3/FVPIfg85V+c6HZs76j+L1s5G3FbumPdyr\n\trMXIQyF5B4Zc7yzfQxLAM8LBuGApZXXxqJiVV6u0aB8BJpYo+HMLKe5dJomYashO0\n\tklCPbUAkYQYDD8TIoaC+WWN/iu8IgYhart5Xg5cAt+hKEelq25wWcGx8LyBGS8UCV\n\tC/37GtGYbtq0wbrfFMAJcJXDt+PpL8DQJuCJXDpiAJuZMOk6NU92eKT+vSmrEYKua\n\tE864TT0HNLS2M5Tav5OxxJUwUG8Jsj1P5GdM8ck15yvKikcw/gWw6uJ4+ogIbKy4B\n\tloZ5s3tMI6UofR9aGQ==","X-UI-Sender-Class":"814a7b36-bfc1-4dae-8640-3722d8ec6cd6","Message-ID":"<3803cac4-5b51-4261-ba9b-53d2fa98e846@web.de>","Date":"Fri, 6 Feb 2026 18:12:36 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: Improve V4L2CameraFile constructor implementation","To":"Paul Elder <paul.elder@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<e6fc4a59-7f21-4451-b80b-4ba8ff0e6532@web.de>\n\t<177039369674.607498.9728707345510657999@neptunite.rasen.tech>","Content-Language":"en-GB, de-DE","From":"Markus Elfring <Markus.Elfring@web.de>","In-Reply-To":"<177039369674.607498.9728707345510657999@neptunite.rasen.tech>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:548T8i/XKXpnhXompD8if0PyFha1Nph/L/4DiKKzO3kfobba8sO\n\tjcVTjNpn/Dx1dxiBiCTigK2smN65nQaszqKuKB3ADhJ/mNNPdPeERgUqkw5pV2x4H2R8Aoq\n\tuI9cKhWjmDvX5WPFgtOx9rRsmAg2zhhFMZXWleAhepGlfNG4p6sLz0p56frsWllaNPcn1+a\n\tMXjAs4tpR/6hc4vZvmT3g==","X-Spam-Flag":"NO","UI-OutboundReport":"notjunk:1; M01:P0:Vz4rFBdl6HM=;\n\tR8T6iVGy7UL/kmLoNRacGH5L+fl\n\t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\n\ti+p2GOpbDinTL6duirR3iooIgjB1o","X-Mailman-Approved-At":"Sat, 07 Feb 2026 14:29:16 +0100","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]