summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>2025-09-13 17:42:04 +0300
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>2025-12-18 12:23:57 +0200
commit9c67dae2d2e6f977e7dc8c5ed070e2bc07383c8a (patch)
tree9a8cc37b8003d28be9262ef9218f9407d255beac
parent7cc1bdd06e68ab81612e8feee2a1dedf0e392886 (diff)
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<Connector*> 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.
-rw-r--r--kms++/src/card.cpp2
-rw-r--r--kms++util/src/resourcemanager.cpp4
-rw-r--r--utils/kmscapture.cpp2
-rw-r--r--utils/kmstest.cpp2
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<Connector*> reserved)
+static Connector* find_connector(Card& card, const set<Connector*>& reserved)
{
for (Connector* conn : card.get_connectors()) {
if (!conn->connected())
@@ -32,7 +32,7 @@ static Connector* find_connector(Card& card, const set<Connector*> reserved)
return nullptr;
}
-static Connector* resolve_connector(Card& card, const string& name, const set<Connector*> reserved)
+static Connector* resolve_connector(Card& card, const string& name, const set<Connector*>& 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<int> 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<const OutputInfo*> outputs)
+ FlipState(Card& card, const string& name, const vector<const OutputInfo*>& outputs)
: m_card(card), m_name(name), m_outputs(outputs)
{
}