From 9c67dae2d2e6f977e7dc8c5ed070e2bc07383c8a Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Sat, 13 Sep 2025 17:42:04 +0300 Subject: perf: Pass parameters by const reference to avoid copies Fix cppcheck performance warnings by passing function parameters by const reference instead of by value, preventing unnecessary copies: - string parameters in open_device_by_path() - set parameters in connector finder functions - vector parameter in FlipState constructor - range variable in kmscapture loop These changes improve performance by avoiding object copies while maintaining the same functionality. --- kms++/src/card.cpp | 2 +- kms++util/src/resourcemanager.cpp | 4 ++-- utils/kmscapture.cpp | 2 +- utils/kmstest.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kms++/src/card.cpp b/kms++/src/card.cpp index d0af8a4..c26e4f2 100644 --- a/kms++/src/card.cpp +++ b/kms++/src/card.cpp @@ -70,7 +70,7 @@ static int open_first_kms_device() throw runtime_error("No modesetting DRM card found"); } -static int open_device_by_path(string path) +static int open_device_by_path(const string& path) { int fd = open(path.c_str(), O_RDWR | O_CLOEXEC); if (fd < 0) diff --git a/kms++util/src/resourcemanager.cpp b/kms++util/src/resourcemanager.cpp index 5a9f016..424c8f0 100644 --- a/kms++util/src/resourcemanager.cpp +++ b/kms++util/src/resourcemanager.cpp @@ -17,7 +17,7 @@ void ResourceManager::reset() m_reserved_planes.clear(); } -static Connector* find_connector(Card& card, const set reserved) +static Connector* find_connector(Card& card, const set& reserved) { for (Connector* conn : card.get_connectors()) { if (!conn->connected()) @@ -32,7 +32,7 @@ static Connector* find_connector(Card& card, const set reserved) return nullptr; } -static Connector* resolve_connector(Card& card, const string& name, const set reserved) +static Connector* resolve_connector(Card& card, const string& name, const set& reserved) { auto connectors = card.get_connectors(); diff --git a/utils/kmscapture.cpp b/utils/kmscapture.cpp index 23941ca..251cc3b 100644 --- a/utils/kmscapture.cpp +++ b/utils/kmscapture.cpp @@ -333,7 +333,7 @@ int main(int argc, char** argv) vector camera_fds; - for (string vidpath : glob("/dev/video*")) { + for (const string& vidpath : glob("/dev/video*")) { int fd = ::open(vidpath.c_str(), O_RDWR | O_NONBLOCK); if (fd < 0) diff --git a/utils/kmstest.cpp b/utils/kmstest.cpp index 43dc355..5028e7e 100644 --- a/utils/kmstest.cpp +++ b/utils/kmstest.cpp @@ -968,7 +968,7 @@ static bool max_flips_reached; class FlipState : private PageFlipHandlerBase { public: - FlipState(Card& card, const string& name, vector outputs) + FlipState(Card& card, const string& name, const vector& outputs) : m_card(card), m_name(name), m_outputs(outputs) { } -- cgit v1.2.3