diff options
| author | Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> | 2025-09-13 17:42:04 +0300 |
|---|---|---|
| committer | Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> | 2025-12-18 12:23:57 +0200 |
| commit | 9c67dae2d2e6f977e7dc8c5ed070e2bc07383c8a (patch) | |
| tree | 9a8cc37b8003d28be9262ef9218f9407d255beac | |
| parent | 7cc1bdd06e68ab81612e8feee2a1dedf0e392886 (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.cpp | 2 | ||||
| -rw-r--r-- | kms++util/src/resourcemanager.cpp | 4 | ||||
| -rw-r--r-- | utils/kmscapture.cpp | 2 | ||||
| -rw-r--r-- | 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<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) { } |
