mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-13 23:39:44 +03:00
android: CameraDevice: Manage staticMetadata_ with std::unique_ptr
staticMetadata_ in CameraDevice is not necessary to be a raw pointer. This reduces the manual new/delete code by changing the type to std::unique_ptr. Signed-off-by: Hirokazu Honda <hiroh@chromium.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
17a6e78e00
commit
dca709c44a
2 changed files with 5 additions and 11 deletions
|
@ -311,8 +311,7 @@ CameraDevice::Camera3RequestDescriptor::~Camera3RequestDescriptor() = default;
|
|||
|
||||
CameraDevice::CameraDevice(unsigned int id, std::shared_ptr<Camera> camera)
|
||||
: id_(id), running_(false), camera_(std::move(camera)),
|
||||
staticMetadata_(nullptr), facing_(CAMERA_FACING_FRONT),
|
||||
orientation_(0)
|
||||
facing_(CAMERA_FACING_FRONT), orientation_(0)
|
||||
{
|
||||
camera_->requestCompleted.connect(this, &CameraDevice::requestComplete);
|
||||
|
||||
|
@ -341,9 +340,6 @@ CameraDevice::CameraDevice(unsigned int id, std::shared_ptr<Camera> camera)
|
|||
|
||||
CameraDevice::~CameraDevice()
|
||||
{
|
||||
if (staticMetadata_)
|
||||
delete staticMetadata_;
|
||||
|
||||
for (auto &it : requestTemplates_)
|
||||
delete it.second;
|
||||
}
|
||||
|
@ -732,11 +728,10 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
|||
uint32_t numEntries;
|
||||
uint32_t byteSize;
|
||||
std::tie(numEntries, byteSize) = calculateStaticMetadataSize();
|
||||
staticMetadata_ = new CameraMetadata(numEntries, byteSize);
|
||||
staticMetadata_ = std::make_unique<CameraMetadata>(numEntries, byteSize);
|
||||
if (!staticMetadata_->isValid()) {
|
||||
LOG(HAL, Error) << "Failed to allocate static metadata";
|
||||
delete staticMetadata_;
|
||||
staticMetadata_ = nullptr;
|
||||
staticMetadata_.reset();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
@ -1356,8 +1351,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
|||
|
||||
if (!staticMetadata_->isValid()) {
|
||||
LOG(HAL, Error) << "Failed to construct static metadata";
|
||||
delete staticMetadata_;
|
||||
staticMetadata_ = nullptr;
|
||||
staticMetadata_.reset();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ private:
|
|||
std::shared_ptr<libcamera::Camera> camera_;
|
||||
std::unique_ptr<libcamera::CameraConfiguration> config_;
|
||||
|
||||
CameraMetadata *staticMetadata_;
|
||||
std::unique_ptr<CameraMetadata> staticMetadata_;
|
||||
std::map<unsigned int, const CameraMetadata *> requestTemplates_;
|
||||
const camera3_callback_ops_t *callbacks_;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue