mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-14 07:59: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)
|
CameraDevice::CameraDevice(unsigned int id, std::shared_ptr<Camera> camera)
|
||||||
: id_(id), running_(false), camera_(std::move(camera)),
|
: id_(id), running_(false), camera_(std::move(camera)),
|
||||||
staticMetadata_(nullptr), facing_(CAMERA_FACING_FRONT),
|
facing_(CAMERA_FACING_FRONT), orientation_(0)
|
||||||
orientation_(0)
|
|
||||||
{
|
{
|
||||||
camera_->requestCompleted.connect(this, &CameraDevice::requestComplete);
|
camera_->requestCompleted.connect(this, &CameraDevice::requestComplete);
|
||||||
|
|
||||||
|
@ -341,9 +340,6 @@ CameraDevice::CameraDevice(unsigned int id, std::shared_ptr<Camera> camera)
|
||||||
|
|
||||||
CameraDevice::~CameraDevice()
|
CameraDevice::~CameraDevice()
|
||||||
{
|
{
|
||||||
if (staticMetadata_)
|
|
||||||
delete staticMetadata_;
|
|
||||||
|
|
||||||
for (auto &it : requestTemplates_)
|
for (auto &it : requestTemplates_)
|
||||||
delete it.second;
|
delete it.second;
|
||||||
}
|
}
|
||||||
|
@ -732,11 +728,10 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
||||||
uint32_t numEntries;
|
uint32_t numEntries;
|
||||||
uint32_t byteSize;
|
uint32_t byteSize;
|
||||||
std::tie(numEntries, byteSize) = calculateStaticMetadataSize();
|
std::tie(numEntries, byteSize) = calculateStaticMetadataSize();
|
||||||
staticMetadata_ = new CameraMetadata(numEntries, byteSize);
|
staticMetadata_ = std::make_unique<CameraMetadata>(numEntries, byteSize);
|
||||||
if (!staticMetadata_->isValid()) {
|
if (!staticMetadata_->isValid()) {
|
||||||
LOG(HAL, Error) << "Failed to allocate static metadata";
|
LOG(HAL, Error) << "Failed to allocate static metadata";
|
||||||
delete staticMetadata_;
|
staticMetadata_.reset();
|
||||||
staticMetadata_ = nullptr;
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1356,8 +1351,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
|
||||||
|
|
||||||
if (!staticMetadata_->isValid()) {
|
if (!staticMetadata_->isValid()) {
|
||||||
LOG(HAL, Error) << "Failed to construct static metadata";
|
LOG(HAL, Error) << "Failed to construct static metadata";
|
||||||
delete staticMetadata_;
|
staticMetadata_.reset();
|
||||||
staticMetadata_ = nullptr;
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ private:
|
||||||
std::shared_ptr<libcamera::Camera> camera_;
|
std::shared_ptr<libcamera::Camera> camera_;
|
||||||
std::unique_ptr<libcamera::CameraConfiguration> config_;
|
std::unique_ptr<libcamera::CameraConfiguration> config_;
|
||||||
|
|
||||||
CameraMetadata *staticMetadata_;
|
std::unique_ptr<CameraMetadata> staticMetadata_;
|
||||||
std::map<unsigned int, const CameraMetadata *> requestTemplates_;
|
std::map<unsigned int, const CameraMetadata *> requestTemplates_;
|
||||||
const camera3_callback_ops_t *callbacks_;
|
const camera3_callback_ops_t *callbacks_;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue