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

Jacopo Mondi jacopo.mondi at ideasonboard.com
Mon Feb 3 17:48:35 CET 2025


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)

>  	: 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