ipa: camera_sensor_helper: Return unique_ptr from createInstance
Avoid naked pointer with memory allocation by returning a unique_ptr from CameraSensorHelperFactory::createInstance(), in order to increase memory allocation safety. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Xavier Roumegue <xavier.roumegue@oss.nxp.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
b4a3e6ade7
commit
9d9481188f
2 changed files with 6 additions and 7 deletions
|
@ -261,8 +261,7 @@ std::unique_ptr<CameraSensorHelper> CameraSensorHelperFactory::create(const std:
|
||||||
if (name != factory->name_)
|
if (name != factory->name_)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
CameraSensorHelper *helper = factory->createInstance();
|
return factory->createInstance();
|
||||||
return std::unique_ptr<CameraSensorHelper>(helper);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -307,8 +306,8 @@ std::vector<CameraSensorHelperFactory *> &CameraSensorHelperFactory::factories()
|
||||||
* macro. It creates a camera sensor helper instance associated with the camera
|
* macro. It creates a camera sensor helper instance associated with the camera
|
||||||
* sensor model.
|
* sensor model.
|
||||||
*
|
*
|
||||||
* \return A pointer to a newly constructed instance of the CameraSensorHelper
|
* \return A unique pointer to a newly constructed instance of the
|
||||||
* subclass corresponding to the factory
|
* CameraSensorHelper subclass corresponding to the factory
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -73,7 +73,7 @@ private:
|
||||||
|
|
||||||
static void registerType(CameraSensorHelperFactory *factory);
|
static void registerType(CameraSensorHelperFactory *factory);
|
||||||
|
|
||||||
virtual CameraSensorHelper *createInstance() const = 0;
|
virtual std::unique_ptr<CameraSensorHelper> createInstance() const = 0;
|
||||||
|
|
||||||
std::string name_;
|
std::string name_;
|
||||||
};
|
};
|
||||||
|
@ -85,9 +85,9 @@ public: \
|
||||||
helper##Factory() : CameraSensorHelperFactory(name) {} \
|
helper##Factory() : CameraSensorHelperFactory(name) {} \
|
||||||
\
|
\
|
||||||
private: \
|
private: \
|
||||||
CameraSensorHelper *createInstance() const \
|
std::unique_ptr<CameraSensorHelper> createInstance() const \
|
||||||
{ \
|
{ \
|
||||||
return new helper(); \
|
return std::make_unique<helper>(); \
|
||||||
} \
|
} \
|
||||||
}; \
|
}; \
|
||||||
static helper##Factory global_##helper##Factory;
|
static helper##Factory global_##helper##Factory;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue