From patchwork Thu Sep 2 04:22:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 13599 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 1F111C3243 for ; Thu, 2 Sep 2021 04:23:30 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D12CA69180; Thu, 2 Sep 2021 06:23:28 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="o1OcaqG1"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2069869167 for ; Thu, 2 Sep 2021 06:23:25 +0200 (CEST) Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id A611745E; Thu, 2 Sep 2021 06:23:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1630556604; bh=p+5LZdOtA9bp4navCtHQ0fcbILuRsaD5UZbhHGPVtBk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o1OcaqG1INo32oE/ffmnbSL9BCfP0393krZ2CYhjaSgzFPYGdj8cVHIgp4rLSDFFT 41UY926VapdAyqcn54RQQA9qtp/b/7pqv0Cq97dWz7jDqmaCrS70k6DtUHB1Dl6ksY hNvMyUUnSWxtR9XDYsESt2mA7bMlWNeGPgyaX1r0= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Thu, 2 Sep 2021 07:22:56 +0300 Message-Id: <20210902042303.2254-6-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210902042303.2254-1-laurent.pinchart@ideasonboard.com> References: <20210902042303.2254-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [RFC PATCH v1 05/12] libcamera: framebuffer: Move planes check to constructor X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The FrameBuffer::planes() function checks that planes are correctly initialized with an offset. This can be done at construction time instead, as the planes are constant. The runtime overhead is reduced, and the backtrace generated by the assertion will show where the faulty frame buffer is created instead of where it is used, easing debugging. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Hirokazu Honda --- include/libcamera/framebuffer.h | 9 +-------- src/libcamera/framebuffer.cpp | 3 +++ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/include/libcamera/framebuffer.h b/include/libcamera/framebuffer.h index d5aeff00387b..fd68ed0a139d 100644 --- a/include/libcamera/framebuffer.h +++ b/include/libcamera/framebuffer.h @@ -51,14 +51,7 @@ public: FrameBuffer(const std::vector &planes, unsigned int cookie = 0); - const std::vector &planes() const - { - /* \todo Remove the assertions after sufficient testing */ - for (const auto &plane : planes_) - assert(plane.offset != Plane::kInvalidOffset); - return planes_; - } - + const std::vector &planes() const { return planes_; } Request *request() const; const FrameMetadata &metadata() const { return metadata_; } diff --git a/src/libcamera/framebuffer.cpp b/src/libcamera/framebuffer.cpp index c99f5b15e6ff..53ef89bf458f 100644 --- a/src/libcamera/framebuffer.cpp +++ b/src/libcamera/framebuffer.cpp @@ -199,6 +199,9 @@ FrameBuffer::FrameBuffer(const std::vector &planes, unsigned int cookie) : Extensible(std::make_unique()), planes_(planes), cookie_(cookie) { + /* \todo Remove the assertions after sufficient testing */ + for (const auto &plane : planes_) + ASSERT(plane.offset != Plane::kInvalidOffset); } /**