summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarnabás Pőcze <pobrn@protonmail.com>2025-01-21 13:12:54 +0100
committerBarnabás Pőcze <pobrn@protonmail.com>2025-02-27 11:30:23 +0100
commitd40250e03b172ecc5f81299499ea0901f3d5b16d (patch)
treebf6cc13bc4f87c48d01e53068388543b1469c561
parentf72c76eb6e06a41d2aaff8c8c4002dea21a7774d (diff)
libcamera: base: log: Remove move constructor
C++17 guarantees move and copy elision in certain cases, such as when returning a prvalue of the same type as the return type of the function. This is what the `_log()` functions do, thus there is no need for the move constructor, so remove it. Furthermore, do not just remove the implementation, but instead delete it as well. Signed-off-by: Barnabás Pőcze <pobrn@protonmail.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--include/libcamera/base/log.h4
-rw-r--r--src/libcamera/base/log.cpp19
2 files changed, 1 insertions, 22 deletions
diff --git a/include/libcamera/base/log.h b/include/libcamera/base/log.h
index 62093012..b3050eed 100644
--- a/include/libcamera/base/log.h
+++ b/include/libcamera/base/log.h
@@ -61,8 +61,6 @@ public:
LogMessage(const char *fileName, unsigned int line,
const LogCategory &category, LogSeverity severity,
const std::string &prefix = std::string());
-
- LogMessage(LogMessage &&);
~LogMessage();
std::ostream &stream() { return msgStream_; }
@@ -75,7 +73,7 @@ public:
const std::string msg() const { return msgStream_.str(); }
private:
- LIBCAMERA_DISABLE_COPY(LogMessage)
+ LIBCAMERA_DISABLE_COPY_AND_MOVE(LogMessage)
void init(const char *fileName, unsigned int line);
diff --git a/src/libcamera/base/log.cpp b/src/libcamera/base/log.cpp
index 72e0db85..009f6c73 100644
--- a/src/libcamera/base/log.cpp
+++ b/src/libcamera/base/log.cpp
@@ -866,25 +866,6 @@ LogMessage::LogMessage(const char *fileName, unsigned int line,
init(fileName, line);
}
-/**
- * \brief Move-construct a log message
- * \param[in] other The other message
- *
- * The move constructor is meant to support the _log() functions. Thanks to copy
- * elision it will likely never be called, but C++11 only permits copy elision,
- * it doesn't enforce it unlike C++17. To avoid potential link errors depending
- * on the compiler type and version, and optimization level, the move
- * constructor is defined even if it will likely never be called, and ensures
- * that the destructor of the \a other message will not output anything to the
- * log by setting the severity to LogInvalid.
- */
-LogMessage::LogMessage(LogMessage &&other)
- : msgStream_(std::move(other.msgStream_)), category_(other.category_),
- severity_(other.severity_)
-{
- other.severity_ = LogInvalid;
-}
-
void LogMessage::init(const char *fileName, unsigned int line)
{
/* Log the timestamp, severity and file information. */