[RFC PATCH v2 6/9] libcamera: base: log: Pass dynamic prefix through

Barnabás Pőcze pobrn at protonmail.com
Mon Feb 3 19:25:23 CET 2025


2025. február 3., hétfő 17:48 keltezéssel, Jacopo Mondi <jacopo.mondi at ideasonboard.com> írta:

> Hi Barnabás
> 
> On Thu, Jan 30, 2025 at 07:58:47PM +0000, Barnabás Pőcze wrote:
> > Use move construction to essentially pass through the string
> > returned by `Loggable::logPrefix()` to avoid an unnecessary copy.
> >
> > Signed-off-by: Barnabás Pőcze <pobrn at protonmail.com>
> > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> >  include/libcamera/base/log.h | 2 +-
> >  src/libcamera/base/log.cpp   | 4 ++--
> >  2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/include/libcamera/base/log.h b/include/libcamera/base/log.h
> > index acef24203..1fb92603f 100644
> > --- a/include/libcamera/base/log.h
> > +++ b/include/libcamera/base/log.h
> > @@ -64,7 +64,7 @@ class LogMessage
> >  public:
> >  	LogMessage(const char *fileName, unsigned int line,
> >  		   const LogCategory &category, LogSeverity severity,
> > -		   const std::string &prefix = std::string());
> > +		   std::string prefix = {});
> >  	~LogMessage();
> >
> >  	std::ostream &stream() { return msgStream_; }
> > diff --git a/src/libcamera/base/log.cpp b/src/libcamera/base/log.cpp
> > index 9415b6937..0dfdb0e9b 100644
> > --- a/src/libcamera/base/log.cpp
> > +++ b/src/libcamera/base/log.cpp
> > @@ -872,9 +872,9 @@ const LogCategory &LogCategory::defaultCategory()
> >   */
> >  LogMessage::LogMessage(const char *fileName, unsigned int line,
> >  		       const LogCategory &category, LogSeverity severity,
> > -		       const std::string &prefix)
> > +		       std::string prefix)
> 
> Aren't we creating an instance here (using the std::string copy-constructor)

Yes, but inside the function there is no copying anymore because this "local"
instance is moved into the member variable.


> 
> >  	: category_(category), severity_(severity),
> > -	  timestamp_(utils::clock::now()), prefix_(prefix)
> > +	  timestamp_(utils::clock::now()), prefix_(std::move(prefix))
> 
> Just to move it here ?
> 
> >  {
> >  	std::ostringstream ossFileInfo;
> >  	ossFileInfo << utils::basename(fileName) << ":" << line;
> > --
> > 2.48.1
> >
> >
> 


More information about the libcamera-devel mailing list