[libcamera-devel] [PATCH 06/10] libcamera: v4l2_videodevice: Prevent aliasing of V4L2BufferCache members

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Oct 15 15:58:56 CEST 2020


Hi Laurent,

On 15/10/2020 14:38, Laurent Pinchart wrote:
> Hi Kieran,
> 
> Thank you for the patch.
> 
> On Tue, Oct 13, 2020 at 04:12:37PM +0100, Kieran Bingham wrote:
>> The members free, and lastUsed were not following the libcamera coding
>> style, and were producing an aliased parameter on the construction.
>>
>> Rename them to be marked as member variables with the _ postfix
>> accordingly.
>>
>> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>> ---
>>  include/libcamera/internal/v4l2_videodevice.h |  4 ++--
>>  src/libcamera/v4l2_videodevice.cpp            | 14 +++++++-------
>>  2 files changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h
>> index 40ed87e17cfa..53f6a2d5515b 100644
>> --- a/include/libcamera/internal/v4l2_videodevice.h
>> +++ b/include/libcamera/internal/v4l2_videodevice.h
>> @@ -127,8 +127,8 @@ private:
>>  
>>  		bool operator==(const FrameBuffer &buffer) const;
>>  
>> -		bool free;
>> -		uint64_t lastUsed;
>> +		bool free_;
>> +		uint64_t lastUsed_;
>>  
>>  	private:
>>  		struct Plane {
>> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
>> index 508522ef42bb..96952b26c634 100644
>> --- a/src/libcamera/v4l2_videodevice.cpp
>> +++ b/src/libcamera/v4l2_videodevice.cpp
>> @@ -212,7 +212,7 @@ int V4L2BufferCache::get(const FrameBuffer &buffer)
>>  	for (unsigned int index = 0; index < cache_.size(); index++) {
>>  		const Entry &entry = cache_[index];
>>  
>> -		if (!entry.free)
>> +		if (!entry.free_)
>>  			continue;
>>  
>>  		/* Try to find a cache hit by comparing the planes. */
>> @@ -222,9 +222,9 @@ int V4L2BufferCache::get(const FrameBuffer &buffer)
>>  			break;
>>  		}
>>  
>> -		if (entry.lastUsed < oldest) {
>> +		if (entry.lastUsed_ < oldest) {
>>  			use = index;
>> -			oldest = entry.lastUsed;
>> +			oldest = entry.lastUsed_;
>>  		}
>>  	}
>>  
>> @@ -248,16 +248,16 @@ int V4L2BufferCache::get(const FrameBuffer &buffer)
>>  void V4L2BufferCache::put(unsigned int index)
>>  {
>>  	ASSERT(index < cache_.size());
>> -	cache_[index].free = true;
>> +	cache_[index].free_ = true;
>>  }
>>  
>>  V4L2BufferCache::Entry::Entry()
>> -	: free(true), lastUsed(0)
>> +	: free_(true), lastUsed_(0)
>>  {
>>  }
>>  
>> -V4L2BufferCache::Entry::Entry(bool free, uint64_t lastUsed, const FrameBuffer &buffer)
>> -	: free(free), lastUsed(lastUsed)
>> +V4L2BufferCache::Entry::Entry(bool free, uint64_t age, const FrameBuffer &buffer)
>> +	: free_(free), lastUsed_(age)
> 
> Any specific reason to rename the function parameter here, or is it a
> leftover ? I assume the latter, so without the rename,

Good spot - indeed, this is a leftover from before I saw adding the _
was the correct way forwards.

I'll fix for v2.


> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Thanks.


> 
>>  {
>>  	for (const FrameBuffer::Plane &plane : buffer.planes())
>>  		planes_.emplace_back(plane);
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list