[PATCH v2 6/6] libcamera: shared_mem_object: Remove is_standard_layout restriction

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu May 9 13:16:15 CEST 2024


On Thu, May 09, 2024 at 11:49:41AM +0200, Jacopo Mondi wrote:
> On Wed, May 08, 2024 at 09:04:01AM GMT, Naushir Patuck wrote:
> > The shared_mem_object may be used to construct complex classes, so
> > remove the standard layout type restriction.
> >
> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> 
> This looks fine to me, but maybe better check on why this was
> introduced in first place.

It was added there because sharing objects containing pointers between
different processes isn't safe. Naush, what object do you need to store
in shared memory that has a non-standard layout, but is still safe to
share ?

> Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> 
> > ---
> >  include/libcamera/internal/shared_mem_object.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/include/libcamera/internal/shared_mem_object.h b/include/libcamera/internal/shared_mem_object.h
> > index 9b1d939302a8..c9c0482062bd 100644
> > --- a/include/libcamera/internal/shared_mem_object.h
> > +++ b/include/libcamera/internal/shared_mem_object.h
> > @@ -56,7 +56,7 @@ private:
> >  	Span<uint8_t> mem_;
> >  };
> >
> > -template<class T, typename = std::enable_if_t<std::is_standard_layout<T>::value>>
> > +template<class T>
> >  class SharedMemObject : public SharedMem
> >  {
> >  public:

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list