[RFC PATCH v2 3/9] libcamera: base: log: Remove `LogMessage::init()`

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


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

> Hi Barnabás
> 
> On Thu, Jan 30, 2025 at 07:58:29PM +0000, Barnabás Pőcze wrote:
> > It is a short function that can be merged into the constructor with
> > essentially no change in observable behaviour, so do that.
> >
> > 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   | 13 +++----------
> >  2 files changed, 3 insertions(+), 12 deletions(-)
> >
> > diff --git a/include/libcamera/base/log.h b/include/libcamera/base/log.h
> > index b3050eedb..6d2c93019 100644
> > --- a/include/libcamera/base/log.h
> > +++ b/include/libcamera/base/log.h
> > @@ -75,8 +75,6 @@ public:
> >  private:
> >  	LIBCAMERA_DISABLE_COPY_AND_MOVE(LogMessage)
> >
> > -	void init(const char *fileName, unsigned int line);
> > -
> >  	std::ostringstream msgStream_;
> >  	const LogCategory &category_;
> >  	LogSeverity severity_;
> > diff --git a/src/libcamera/base/log.cpp b/src/libcamera/base/log.cpp
> > index 31053aee1..51a5cd470 100644
> > --- a/src/libcamera/base/log.cpp
> > +++ b/src/libcamera/base/log.cpp
> > @@ -875,19 +875,12 @@ const LogCategory &LogCategory::defaultCategory()
> >  LogMessage::LogMessage(const char *fileName, unsigned int line,
> >  		       const LogCategory &category, LogSeverity severity,
> >  		       const std::string &prefix)
> > -	: category_(category), severity_(severity), prefix_(prefix)
> > +	: category_(category), severity_(severity),
> > +	  timestamp_(utils::clock::now()), prefix_(prefix)
> >  {
> > -	init(fileName, line);
> > -}
> > -
> > -void LogMessage::init(const char *fileName, unsigned int line)
> > -{
> > -	/* Log the timestamp, severity and file information. */
> > -	timestamp_ = utils::clock::now();
> > -
> >  	std::ostringstream ossFileInfo;
> >  	ossFileInfo << utils::basename(fileName) << ":" << line;
> > -	fileInfo_ = ossFileInfo.str();
> > +	fileInfo_ = std::move(ossFileInfo).str();
> 
> What is the benefit of moving ossFileInfo first and then calling ::str()
> (which anyway returns a copy to the underlying string) ?

Oops, this is an unrelated change from my experimentation. In C++20 and later
one is able to move the string out of a stringstream without copying. Before
that there is no effect.


> 
> >  }
> >
> >  LogMessage::~LogMessage()
> > --
> > 2.48.1
> >
> >
> 


More information about the libcamera-devel mailing list