Patch Detail
Show a patch.
GET /api/patches/13674/?format=api
{ "id": 13674, "url": "https://patchwork.libcamera.org/api/patches/13674/?format=api", "web_url": "https://patchwork.libcamera.org/patch/13674/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20210906225636.14683-8-laurent.pinchart@ideasonboard.com>", "date": "2021-09-06T22:56:14", "name": "[libcamera-devel,v3,08/30] libcamera: framebuffer: Move planes check to constructor", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "24398495087f87e9dc92c072e8a685ca4426a6e4", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/13674/mbox/", "series": [ { "id": 2482, "url": "https://patchwork.libcamera.org/api/series/2482/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2482", "date": "2021-09-06T22:54:20", "name": "libcamera: Handle fallout of FrameBuffer offset support", "version": 3, "mbox": "https://patchwork.libcamera.org/series/2482/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/13674/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/13674/checks/", "tags": {}, "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 2DA3EBE175\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 6 Sep 2021 22:57:12 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A18BB69173;\n\tTue, 7 Sep 2021 00:57:11 +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 5DB5269179\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 7 Sep 2021 00:57:02 +0200 (CEST)", "from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id DF00A891;\n\tTue, 7 Sep 2021 00:57:01 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"NFRhYtJw\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630969022;\n\tbh=BP7jcFFYwrn3GfvDVNOgjisyswRcA2wt/qRxgsZa9L8=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=NFRhYtJwqOtCLxB1y/7nYkWjPmtNOrAJbsqFG9h8R3rzbsPQ6VpNOYVSvalXRAX6i\n\tphM9Li+sa+QxUeOtZFXdSRR2ibb/efYkG09cOveXjrJqVMcmwVnICyDnakrxIm2v+B\n\tabyuyeeskKMlBORDO78/DazmOwf97U1eLhouC3Dk=", "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Tue, 7 Sep 2021 01:56:14 +0300", "Message-Id": "<20210906225636.14683-8-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.32.0", "In-Reply-To": "<20210906225420.13275-1-laurent.pinchart@ideasonboard.com>", "References": "<20210906225420.13275-1-laurent.pinchart@ideasonboard.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v3 08/30] libcamera: framebuffer: Move\n\tplanes check to constructor", "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>" }, "content": "The FrameBuffer::planes() function checks that planes are correctly\ninitialized with an offset. This can be done at construction time\ninstead, as the planes are constant. The backtrace generated by the\nassertion will show where the faulty frame buffer is created instead of\nwhere it is used, easing debugging.\n\nAs the runtime overhead is reduced, there's no real need to drop the\nassertion in the future anymore, it can be useful to ensure that the\nplanes are correctly populated by the caller. Drop the comment that\ncalls for removing the check.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\nReviewed-by: Hirokazu Honda <hiroh@chromium.org>\n---\n include/libcamera/framebuffer.h | 9 +--------\n src/libcamera/framebuffer.cpp | 2 ++\n 2 files changed, 3 insertions(+), 8 deletions(-)", "diff": "diff --git a/include/libcamera/framebuffer.h b/include/libcamera/framebuffer.h\nindex d5aeff00387b..fd68ed0a139d 100644\n--- a/include/libcamera/framebuffer.h\n+++ b/include/libcamera/framebuffer.h\n@@ -51,14 +51,7 @@ public:\n \n \tFrameBuffer(const std::vector<Plane> &planes, unsigned int cookie = 0);\n \n-\tconst std::vector<Plane> &planes() const\n-\t{\n-\t\t/* \\todo Remove the assertions after sufficient testing */\n-\t\tfor (const auto &plane : planes_)\n-\t\t\tassert(plane.offset != Plane::kInvalidOffset);\n-\t\treturn planes_;\n-\t}\n-\n+\tconst std::vector<Plane> &planes() const { return planes_; }\n \tRequest *request() const;\n \tconst FrameMetadata &metadata() const { return metadata_; }\n \ndiff --git a/src/libcamera/framebuffer.cpp b/src/libcamera/framebuffer.cpp\nindex c99f5b15e6ff..ad63a34a83bf 100644\n--- a/src/libcamera/framebuffer.cpp\n+++ b/src/libcamera/framebuffer.cpp\n@@ -199,6 +199,8 @@ FrameBuffer::FrameBuffer(const std::vector<Plane> &planes, unsigned int cookie)\n \t: Extensible(std::make_unique<Private>()), planes_(planes),\n \t cookie_(cookie)\n {\n+\tfor (const auto &plane : planes_)\n+\t\tASSERT(plane.offset != Plane::kInvalidOffset);\n }\n \n /**\n", "prefixes": [ "libcamera-devel", "v3", "08/30" ] }