[PATCH v2 1/2] libcamera: utils: StringSplitter: Inline some trivial methods

Barnabás Pőcze pobrn at protonmail.com
Thu Dec 5 10:23:00 CET 2024


Inline some of the more trivial methods so that they can
be inlined by the compiler.

Signed-off-by: Barnabás Pőcze <pobrn at protonmail.com>
---
 include/libcamera/base/utils.h | 17 ++++++++++++++---
 src/libcamera/base/utils.cpp   | 15 ---------------
 2 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/include/libcamera/base/utils.h b/include/libcamera/base/utils.h
index 957150cb..c4a06660 100644
--- a/include/libcamera/base/utils.h
+++ b/include/libcamera/base/utils.h
@@ -204,7 +204,11 @@ public:
 
 		iterator &operator++();
 		std::string operator*() const;
-		bool operator!=(const iterator &other) const;
+
+		bool operator!=(const iterator &other) const
+		{
+			return pos_ != other.pos_;
+		}
 
 	private:
 		const StringSplitter *ss_;
@@ -212,8 +216,15 @@ public:
 		std::string::size_type next_;
 	};
 
-	iterator begin() const;
-	iterator end() const;
+	iterator begin() const
+	{
+		return { this, 0 };
+	}
+
+	iterator end() const
+	{
+		return { this, std::string::npos };
+	}
 
 private:
 	std::string str_;
diff --git a/src/libcamera/base/utils.cpp b/src/libcamera/base/utils.cpp
index 67e5a896..bcfc1941 100644
--- a/src/libcamera/base/utils.cpp
+++ b/src/libcamera/base/utils.cpp
@@ -276,21 +276,6 @@ std::string details::StringSplitter::iterator::operator*() const
 	return ss_->str_.substr(pos_, count);
 }
 
-bool details::StringSplitter::iterator::operator!=(const details::StringSplitter::iterator &other) const
-{
-	return pos_ != other.pos_;
-}
-
-details::StringSplitter::iterator details::StringSplitter::begin() const
-{
-	return iterator(this, 0);
-}
-
-details::StringSplitter::iterator details::StringSplitter::end() const
-{
-	return iterator(this, std::string::npos);
-}
-
 /**
  * \fn template<typename Container, typename UnaryOp> \
  * std::string utils::join(const Container &items, const std::string &sep, UnaryOp op)
-- 
2.47.1




More information about the libcamera-devel mailing list