[libcamera-devel] [PATCH] libcamera: camera_sensor: Drop const on the return value of sizes()

Umang Jain umang.jain at ideasonboard.com
Wed Apr 6 15:01:39 CEST 2022


Hi,

On 4/6/22 17:54, Laurent Pinchart wrote:
> Hi Umang,
>
> On Wed, Apr 06, 2022 at 05:45:29PM +0530, Umang Jain wrote:
>> On 4/6/22 17:23, Laurent Pinchart via libcamera-devel wrote:
>>> The sizes() function returns a value, not a reference. There's no need
>>> for it to be const.
>>>
>>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>>> ---
>>>    include/libcamera/internal/camera_sensor.h | 2 +-
>>>    src/libcamera/camera_sensor.cpp            | 2 +-
>>>    2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
>>> index 7fb4ededb4a4..b9f4d7867854 100644
>>> --- a/include/libcamera/internal/camera_sensor.h
>>> +++ b/include/libcamera/internal/camera_sensor.h
>>> @@ -43,7 +43,7 @@ public:
>>>    	const std::string &id() const { return id_; }
>>>    	const MediaEntity *entity() const { return entity_; }
>>>    	const std::vector<unsigned int> &mbusCodes() const { return mbusCodes_; }
>>> -	const std::vector<Size> sizes(unsigned int mbusCode) const;
>>> +	std::vector<Size> sizes(unsigned int mbusCode) const;
>>
>> Doesn't this enable the caller to modify the vector returned by the
>> function? I guess we don't want that, hence it's returned value has been
>> const in the first place?
> It does, but that's not a problem, because the function returns a vector
> by value, not by reference. The caller gets a copy.


Okay.  Then I guess it upto the caller to decide whether or not, to 
treat the returned copy as const or not.
For e.g in CIO2Device::getSensorFormat()

     const auto sizes = sensor_->sizes(code);

Hence

     Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>

>
>>>    	Size resolution() const;
>>>    	const std::vector<controls::draft::TestPatternModeEnum> &testPatternModes() const
>>>    	{
>>> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
>>> index 8b4406fe8aed..eaa2da6bad32 100644
>>> --- a/src/libcamera/camera_sensor.cpp
>>> +++ b/src/libcamera/camera_sensor.cpp
>>> @@ -526,7 +526,7 @@ int CameraSensor::discoverAncillaryDevices()
>>>     *
>>>     * \return The supported frame sizes for \a mbusCode sorted in increasing order
>>>     */
>>> -const std::vector<Size> CameraSensor::sizes(unsigned int mbusCode) const
>>> +std::vector<Size> CameraSensor::sizes(unsigned int mbusCode) const
>>>    {
>>>    	std::vector<Size> sizes;
>>>    


More information about the libcamera-devel mailing list