From patchwork Fri Oct 23 05:10:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 10205 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 175AFBDB13 for ; Fri, 23 Oct 2020 05:11:14 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 11EBA615DE; Fri, 23 Oct 2020 07:11:13 +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="ZTTQrINX"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1AC336034E for ; Fri, 23 Oct 2020 07:11:12 +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 A54C6BB5 for ; Fri, 23 Oct 2020 07:11:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1603429871; bh=t1YFf0l4hNVtGV68VdUV+Xa6JdZXi3pCNKbji1WktNQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=ZTTQrINXVB1PMM7rN8a8yVQvk+xH4/NgSu5kUe2+ij3A8Y55DvyZD4I3LJRuBnVW3 WrikQZMdkoZM0YQ0ZB9KrCbPPOTsU0DBQy/pbOAiq2rpIVVBu6FL7Ckii5oj+AbVgh UY4EBziUGd/BrEysFtZqYjfBO5yd+DGDkMWhSOeQ= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Fri, 23 Oct 2020 08:10:19 +0300 Message-Id: <20201023051021.16389-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201023051021.16389-1-laurent.pinchart@ideasonboard.com> References: <20201023051021.16389-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/3] libcamera: media_object: Remove unneeded destructors 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 MediaEntity, MediaLink and MediaPad classes don't need custom destructors. For MediaEntity and MediaPad, the destructors clear a vector embedded in the classes, which will be done by the default destructor. For MediaLink, the destructor is already empty. Remove them. Signed-off-by: Laurent Pinchart Reviewed-by: Umang Jain Reviewed-by: Kieran Bingham Reviewed-by: Jacopo Mondi --- include/libcamera/internal/media_object.h | 3 --- src/libcamera/media_object.cpp | 18 ------------------ 2 files changed, 21 deletions(-) diff --git a/include/libcamera/internal/media_object.h b/include/libcamera/internal/media_object.h index be6fb8961349..54311c14895b 100644 --- a/include/libcamera/internal/media_object.h +++ b/include/libcamera/internal/media_object.h @@ -51,7 +51,6 @@ private: MediaLink(const struct media_v2_link *link, MediaPad *source, MediaPad *sink); MediaLink(const MediaLink &) = delete; - ~MediaLink() {} MediaPad *source_; MediaPad *sink_; @@ -73,7 +72,6 @@ private: MediaPad(const struct media_v2_pad *pad, MediaEntity *entity); MediaPad(const MediaPad &) = delete; - ~MediaPad(); unsigned int index_; MediaEntity *entity_; @@ -105,7 +103,6 @@ private: MediaEntity(MediaDevice *dev, const struct media_v2_entity *entity, unsigned int major = 0, unsigned int minor = 0); MediaEntity(const MediaEntity &) = delete; - ~MediaEntity(); void addPad(MediaPad *pad); diff --git a/src/libcamera/media_object.cpp b/src/libcamera/media_object.cpp index b7bf048c985d..056036635902 100644 --- a/src/libcamera/media_object.cpp +++ b/src/libcamera/media_object.cpp @@ -191,15 +191,6 @@ MediaPad::MediaPad(const struct media_v2_pad *pad, MediaEntity *entity) { } -MediaPad::~MediaPad() -{ - /* - * Don't delete the links as we only borrow the reference owned by - * MediaDevice. - */ - links_.clear(); -} - /** * \fn MediaPad::index() * \brief Retrieve the pad index @@ -371,15 +362,6 @@ MediaEntity::MediaEntity(MediaDevice *dev, { } -MediaEntity::~MediaEntity() -{ - /* - * Don't delete the pads as we only borrow the reference owned by - * MediaDevice. - */ - pads_.clear(); -} - /** * \brief Add \a pad to the entity's list of pads * \param[in] pad The pad to add to the list From patchwork Fri Oct 23 05:10:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 10206 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 BDE18BDB13 for ; Fri, 23 Oct 2020 05:11:16 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8962A615D4; Fri, 23 Oct 2020 07:11:16 +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="eYQiW6GV"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 58FC26034E for ; Fri, 23 Oct 2020 07:11:12 +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 04B69B26 for ; Fri, 23 Oct 2020 07:11:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1603429872; bh=uvPvY/k7QQs6iSvqiGzvcP6YNky6TFcUjNVR/JS+190=; h=From:To:Subject:Date:In-Reply-To:References:From; b=eYQiW6GVZ00H3lZ3tZjsCQgxjflW1kMK/QL7xQ6yIbIWDjswKvszv33j8l79mpYH/ XPiuano1arg/LslHZcdxiU5PYqkCCXQdGATUUhtA1Q650tJYtLDcRabLfFpXN1XYXU 4qyZ82aOayRjWYaZrrJ5Su7pMsN8cf6Zzu8WXHWA= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Fri, 23 Oct 2020 08:10:20 +0300 Message-Id: <20201023051021.16389-3-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201023051021.16389-1-laurent.pinchart@ideasonboard.com> References: <20201023051021.16389-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 2/3] libcamera: Drop unneeded empty default constructors and destructors 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" A few default constructors and destructors are needlessly defined as empty. Drop them. Signed-off-by: Laurent Pinchart Reviewed-by: Umang Jain Reviewed-by: Kieran Bingham --- include/libcamera/signal.h | 1 - test/media_device/media_device_print_test.cpp | 4 ---- 2 files changed, 5 deletions(-) diff --git a/include/libcamera/signal.h b/include/libcamera/signal.h index accb797e911c..5bcd7a77c5f1 100644 --- a/include/libcamera/signal.h +++ b/include/libcamera/signal.h @@ -38,7 +38,6 @@ template class Signal : public SignalBase { public: - Signal() {} ~Signal() { disconnect(); diff --git a/test/media_device/media_device_print_test.cpp b/test/media_device/media_device_print_test.cpp index 436d4e8af614..cdec5b8da3ec 100644 --- a/test/media_device/media_device_print_test.cpp +++ b/test/media_device/media_device_print_test.cpp @@ -25,10 +25,6 @@ using namespace std; */ class MediaDevicePrintTest : public Test { -public: - MediaDevicePrintTest() {} - ~MediaDevicePrintTest() {} - protected: int init() { return 0; } int run(); From patchwork Fri Oct 23 05:10:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 10207 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 23F55C3D3D for ; Fri, 23 Oct 2020 05:11:17 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E0317615DA; Fri, 23 Oct 2020 07:11:16 +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="Bb5hZaOH"; 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 B352D615D9 for ; Fri, 23 Oct 2020 07:11:12 +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 52D72BB5 for ; Fri, 23 Oct 2020 07:11:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1603429872; bh=QAGVhCbLb7knPbdhW0HJX/WL+MdJh2JgrEf0STmg3dw=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Bb5hZaOHFBZID9ramC4glbdtpxdpACqA4SxHpWpJc9U7+dVEokOOxQr6ZYY03boHn EdzJb3payZr6xQSh4lNJTeVWrbevPWiRDOa43XEY2D7gYG3tErLEus6uf8zQXDzVdq fAE+pFSvKiNJ2po+EDKKzcA+vIWDD9GLsLrES5LI= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Fri, 23 Oct 2020 08:10:21 +0300 Message-Id: <20201023051021.16389-4-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201023051021.16389-1-laurent.pinchart@ideasonboard.com> References: <20201023051021.16389-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 3/3] libcamera: Declare empty virtual destructors as defaulted 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 base class of polymorphic classes is required to declare a destructor. Several of these are empty, and can thus be declared as defaulted. Signed-off-by: Laurent Pinchart Reviewed-by: Umang Jain Reviewed-by: Kieran Bingham --- include/libcamera/bound_method.h | 4 ++-- include/libcamera/internal/control_validator.h | 2 +- include/libcamera/internal/ipa_proxy.h | 2 +- include/libcamera/internal/media_object.h | 2 +- include/libcamera/internal/pipeline_handler.h | 4 ++-- include/libcamera/ipa/ipa_interface.h | 2 +- src/android/jpeg/encoder.h | 2 +- src/android/post_processor.h | 2 +- src/cam/options.h | 2 +- src/libcamera/pipeline/rkisp1/timeline.h | 4 ++-- src/qcam/viewfinder.h | 2 +- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/include/libcamera/bound_method.h b/include/libcamera/bound_method.h index d1e4448304a9..95a956530877 100644 --- a/include/libcamera/bound_method.h +++ b/include/libcamera/bound_method.h @@ -26,7 +26,7 @@ enum ConnectionType { class BoundMethodPackBase { public: - virtual ~BoundMethodPackBase() {} + virtual ~BoundMethodPackBase() = default; }; template @@ -61,7 +61,7 @@ public: : obj_(obj), object_(object), connectionType_(type) { } - virtual ~BoundMethodBase() {} + virtual ~BoundMethodBase() = default; template::value> * = nullptr> bool match(T *obj) { return obj == obj_; } diff --git a/include/libcamera/internal/control_validator.h b/include/libcamera/internal/control_validator.h index 4a00b9b7f686..206006954cd9 100644 --- a/include/libcamera/internal/control_validator.h +++ b/include/libcamera/internal/control_validator.h @@ -16,7 +16,7 @@ class ControlId; class ControlValidator { public: - virtual ~ControlValidator() {} + virtual ~ControlValidator() = default; virtual const std::string &name() const = 0; virtual bool validate(unsigned int id) const = 0; diff --git a/include/libcamera/internal/ipa_proxy.h b/include/libcamera/internal/ipa_proxy.h index b429ce5a68a3..49399f4eb856 100644 --- a/include/libcamera/internal/ipa_proxy.h +++ b/include/libcamera/internal/ipa_proxy.h @@ -42,7 +42,7 @@ class IPAProxyFactory { public: IPAProxyFactory(const char *name); - virtual ~IPAProxyFactory() {} + virtual ~IPAProxyFactory() = default; virtual std::unique_ptr create(IPAModule *ipam) = 0; diff --git a/include/libcamera/internal/media_object.h b/include/libcamera/internal/media_object.h index 54311c14895b..43a35bef8f35 100644 --- a/include/libcamera/internal/media_object.h +++ b/include/libcamera/internal/media_object.h @@ -31,7 +31,7 @@ protected: : dev_(dev), id_(id) { } - virtual ~MediaObject() {} + virtual ~MediaObject() = default; MediaDevice *dev_; unsigned int id_; diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h index a4e1b529c461..c12c8904858e 100644 --- a/include/libcamera/internal/pipeline_handler.h +++ b/include/libcamera/internal/pipeline_handler.h @@ -40,7 +40,7 @@ public: : pipe_(pipe) { } - virtual ~CameraData() {} + virtual ~CameraData() = default; Camera *camera_; PipelineHandler *pipe_; @@ -118,7 +118,7 @@ class PipelineHandlerFactory { public: PipelineHandlerFactory(const char *name); - virtual ~PipelineHandlerFactory() {} + virtual ~PipelineHandlerFactory() = default; std::shared_ptr create(CameraManager *manager); diff --git a/include/libcamera/ipa/ipa_interface.h b/include/libcamera/ipa/ipa_interface.h index 5016ec25ea9c..322b7079070e 100644 --- a/include/libcamera/ipa/ipa_interface.h +++ b/include/libcamera/ipa/ipa_interface.h @@ -150,7 +150,7 @@ struct CameraSensorInfo; class IPAInterface { public: - virtual ~IPAInterface() {} + virtual ~IPAInterface() = default; virtual int init(const IPASettings &settings) = 0; virtual int start() = 0; diff --git a/src/android/jpeg/encoder.h b/src/android/jpeg/encoder.h index 270ea6091798..0ca2ba38c528 100644 --- a/src/android/jpeg/encoder.h +++ b/src/android/jpeg/encoder.h @@ -14,7 +14,7 @@ class Encoder { public: - virtual ~Encoder() {} + virtual ~Encoder() = default; virtual int configure(const libcamera::StreamConfiguration &cfg) = 0; virtual int encode(const libcamera::FrameBuffer &source, diff --git a/src/android/post_processor.h b/src/android/post_processor.h index 5f87a5d1bc30..e0f91880f0bf 100644 --- a/src/android/post_processor.h +++ b/src/android/post_processor.h @@ -16,7 +16,7 @@ class CameraMetadata; class PostProcessor { public: - virtual ~PostProcessor() {} + virtual ~PostProcessor() = default; virtual int configure(const libcamera::StreamConfiguration &inCfg, const libcamera::StreamConfiguration &outCfg) = 0; diff --git a/src/cam/options.h b/src/cam/options.h index 184866195eef..f02eeca2eef9 100644 --- a/src/cam/options.h +++ b/src/cam/options.h @@ -73,7 +73,7 @@ public: { }; - virtual ~KeyValueParser() {} + virtual ~KeyValueParser() = default; bool addOption(const char *name, OptionType type, const char *help, OptionArgument argument = ArgumentNone); diff --git a/src/libcamera/pipeline/rkisp1/timeline.h b/src/libcamera/pipeline/rkisp1/timeline.h index 88f99329873d..0c37b06fa6df 100644 --- a/src/libcamera/pipeline/rkisp1/timeline.h +++ b/src/libcamera/pipeline/rkisp1/timeline.h @@ -22,7 +22,7 @@ public: FrameAction(unsigned int frame, unsigned int type) : frame_(frame), type_(type) {} - virtual ~FrameAction() {} + virtual ~FrameAction() = default; unsigned int frame() const { return frame_; } unsigned int type() const { return type_; } @@ -38,7 +38,7 @@ class Timeline { public: Timeline(); - virtual ~Timeline() {} + virtual ~Timeline() = default; virtual void reset(); virtual void scheduleAction(std::unique_ptr action); diff --git a/src/qcam/viewfinder.h b/src/qcam/viewfinder.h index 67da1df26a0c..e33dc4525224 100644 --- a/src/qcam/viewfinder.h +++ b/src/qcam/viewfinder.h @@ -22,7 +22,7 @@ struct MappedBuffer { class ViewFinder { public: - virtual ~ViewFinder() {} + virtual ~ViewFinder() = default; virtual const QList &nativeFormats() const = 0;