[{"id":23157,"web_url":"https://patchwork.libcamera.org/comment/23157/","msgid":"<165357372312.989479.12037856746802209549@Monstersaurus>","date":"2022-05-26T14:02:03","subject":"Re: [libcamera-devel] [PATCH] libcamera: media_device: Return\n\tstring references to avoid copies","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart via libcamera-devel (2022-05-26 14:30:52)\n> The MediaDevice::driver(), deviceNode() and model() functions return a\n> const std::string, copying the string stored internally in the class.\n> Return references instead to avoid copies.\n> \n\nSeems quite reasonable.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  include/libcamera/internal/media_device.h | 6 +++---\n>  1 file changed, 3 insertions(+), 3 deletions(-)\n> \n> diff --git a/include/libcamera/internal/media_device.h b/include/libcamera/internal/media_device.h\n> index 6e2a63f38229..eb8cfde48e20 100644\n> --- a/include/libcamera/internal/media_device.h\n> +++ b/include/libcamera/internal/media_device.h\n> @@ -38,9 +38,9 @@ public:\n>         int populate();\n>         bool isValid() const { return valid_; }\n>  \n> -       const std::string driver() const { return driver_; }\n> -       const std::string deviceNode() const { return deviceNode_; }\n> -       const std::string model() const { return model_; }\n> +       const std::string &driver() const { return driver_; }\n> +       const std::string &deviceNode() const { return deviceNode_; }\n> +       const std::string &model() const { return model_; }\n>         unsigned int version() const { return version_; }\n>         unsigned int hwRevision() const { return hwRevision_; }\n>  \n> \n> base-commit: f8e4649680303ce9b7dace5ad1344fcb450013ac\n> -- \n> Regards,\n> \n> Laurent Pinchart\n>","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 31EABBD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 26 May 2022 14:02:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 51B5C611C1;\n\tThu, 26 May 2022 16:02:07 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A531F60DB0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 26 May 2022 16:02:05 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 38210898;\n\tThu, 26 May 2022 16:02:05 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1653573727;\n\tbh=aT+d6GEfF2brhV8x+4QvSFZzLkWoE1Y6Q8o6VivwXMY=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=xks51DU5nVwLutbeaiX6TcotpAoVwwLikkg3sLbc3y+Gk4ux0Ibxz+67wPQK5XeDa\n\tAgDvyjWOgi9uNxCcLbjq+g8YwllCvln8XKhU6Hh1BvHulUTSPyMo+vUx/C96imDRX5\n\tezDxKCvwvkZWQ91WoWrNg4uG3vJnJnhmjJGPbp6eiyB/9uyi1eD6/Xqy078bLCoSPd\n\tyLoG0qYhAdZOLVV0PneoEcKK3Mq0SXxrcYMdHEdlouN7UBhSnAO+YTgL3Azn4d7MzZ\n\tzbv0UCjfqHss9I3a9VZmgX3++3XzrHUlh44fgaRbyXUNlbaJXb3vUTB3wyiBRTro8J\n\thcNkbMpLrMLFQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1653573725;\n\tbh=aT+d6GEfF2brhV8x+4QvSFZzLkWoE1Y6Q8o6VivwXMY=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=M3AxW+i6JPtu8GL4rRjOOSzd3wkmEhBfZ2pwcQ1bDu5uOBLIRQBsAP7hZIAJLy8Jp\n\t5ino8/gsyYtMLAbLQTJgqbihykfJwsPVlpsQ5be3wOf4RhzsmLKbhjoNDOubZfJIZ3\n\tkW52vRepVz2GSWvg0xPL4uLZoAVtbt+J1tHAAzEo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"M3AxW+i6\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220526133052.18791-1-laurent.pinchart@ideasonboard.com>","References":"<20220526133052.18791-1-laurent.pinchart@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 26 May 2022 15:02:03 +0100","Message-ID":"<165357372312.989479.12037856746802209549@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] libcamera: media_device: Return\n\tstring references to avoid copies","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":23168,"web_url":"https://patchwork.libcamera.org/comment/23168/","msgid":"<20220527024307.GA4117012@pyrite.rasen.tech>","date":"2022-05-27T02:43:07","subject":"Re: [libcamera-devel] [PATCH] libcamera: media_device: Return\n\tstring references to avoid copies","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"Hi Laurent,\n\nOn Thu, May 26, 2022 at 04:30:52PM +0300, Laurent Pinchart via libcamera-devel wrote:\n> The MediaDevice::driver(), deviceNode() and model() functions return a\n> const std::string, copying the string stored internally in the class.\n> Return references instead to avoid copies.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  include/libcamera/internal/media_device.h | 6 +++---\n>  1 file changed, 3 insertions(+), 3 deletions(-)\n> \n> diff --git a/include/libcamera/internal/media_device.h b/include/libcamera/internal/media_device.h\n> index 6e2a63f38229..eb8cfde48e20 100644\n> --- a/include/libcamera/internal/media_device.h\n> +++ b/include/libcamera/internal/media_device.h\n> @@ -38,9 +38,9 @@ public:\n>  \tint populate();\n>  \tbool isValid() const { return valid_; }\n>  \n> -\tconst std::string driver() const { return driver_; }\n> -\tconst std::string deviceNode() const { return deviceNode_; }\n> -\tconst std::string model() const { return model_; }\n> +\tconst std::string &driver() const { return driver_; }\n> +\tconst std::string &deviceNode() const { return deviceNode_; }\n> +\tconst std::string &model() const { return model_; }\n>  \tunsigned int version() const { return version_; }\n>  \tunsigned int hwRevision() const { return hwRevision_; }\n>  \n> \n> base-commit: f8e4649680303ce9b7dace5ad1344fcb450013ac","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 8DF0FBD160\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 27 May 2022 02:43:19 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6ACC0633A1;\n\tFri, 27 May 2022 04:43:18 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3813461FB6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 27 May 2022 04:43:16 +0200 (CEST)","from pyrite.rasen.tech (softbank036240126034.bbtec.net\n\t[36.240.126.34])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9E8F632A;\n\tFri, 27 May 2022 04:43:14 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1653619398;\n\tbh=wh3BKfd/f40Vpe8nDLs5kdoYlHByLhiHBJA3aAJxTkM=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=xshou0HoyTrV+nlz2NHwkBH1/K26MbD+ND8BOuRnaMDFvKOpKPvRCKu+VNIY7w+cg\n\tc+ueuu73ctTw96koKapDySstcfBS57MgxqLqk8R7zK0XJBMYKcwvwqrZjF+oKUg7Bv\n\tpHGUoI2JtKDihvm+jAaK3yuvfX2fZ5KbOZbuN0Io1E2iqpk50MEhySeZMxgHs9Ab5Z\n\tLQfJt7oG/RPLRh72QkkSRK4FA9VBlnLOdWVLGeP+vQZP8Y2km8t91t3j+uhwKXl7pE\n\tNGm9uOPxtr2a3oYWi1Py6x5U8JW+cy1bow+A1FXHy6uAyPrXLlZs2drjmo/l8H/3mi\n\tJtMQ3IaD93Rlg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1653619395;\n\tbh=wh3BKfd/f40Vpe8nDLs5kdoYlHByLhiHBJA3aAJxTkM=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=gtVdoEPnddDuCVVMGzyA1X2rQONMecIE0pBN8GlULIVxUIgqX50n9xHqx81CK9qHX\n\tobxv7N/3gAFxaj/hZPDOY45auPcu4lCg0EWJdSLs8fHhVZzo05kd1FDVEdKEFbje2U\n\tEnGbPcnesm7gik6W8Y3lihg4crJ3QmwfYghwYqtw="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"gtVdoEPn\"; dkim-atps=neutral","Date":"Fri, 27 May 2022 11:43:07 +0900","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20220527024307.GA4117012@pyrite.rasen.tech>","References":"<20220526133052.18791-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20220526133052.18791-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] libcamera: media_device: Return\n\tstring references to avoid copies","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>","From":"Paul Elder via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"paul.elder@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]