[libcamera-devel] [PATCH v1] libcamera: framebuffer_allocator: Remove unnecessary `clear()`

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jan 9 14:20:50 CET 2024


On Tue, Jan 09, 2024 at 01:11:19PM +0000, Kieran Bingham via libcamera-devel wrote:
> Quoting Barnabás Pőcze via libcamera-devel (2023-12-09 02:22:28)
> > The vector in question is destroyed when the item in the `buffers_` map
> > is destroyed as a result of the `erase()` call. A vector's destructor
> > already does all the things that `clear()` does,
> > so calling it earlier is not needed.
> 
> This looks correct to me. I guess it's a micro-optimisation, but it
> seems valid.

It may have been there before

commit a4be7bb5ff4d4dce1fdc942a103f6360dad91f11
Author: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Date:   Sun Jan 19 21:42:09 2020 +0200

    libcamera: camera: Move private data members to private implementation

to make sure the FrameBuffer instances get destroyed before freeing the
underlying buffers. That commit changed the order of the operations and
freed the underlying buffers first, apparently without causing issues.
In any case, there's no need for a separate .clear() now.

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

> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> 
> > Signed-off-by: Barnabás Pőcze <pobrn at protonmail.com>
> > ---
> >  src/libcamera/framebuffer_allocator.cpp | 2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp
> > index dabd9219..94389735 100644
> > --- a/src/libcamera/framebuffer_allocator.cpp
> > +++ b/src/libcamera/framebuffer_allocator.cpp
> > @@ -121,8 +121,6 @@ int FrameBufferAllocator::free(Stream *stream)
> >         if (iter == buffers_.end())
> >                 return -EINVAL;
> >  
> > -       std::vector<std::unique_ptr<FrameBuffer>> &buffers = iter->second;
> > -       buffers.clear();
> >         buffers_.erase(iter);
> >  
> >         return 0;

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list