From f9951352f6e3b931a1046a3a85a5b356ebd9bf5b Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 25 Jul 2018 17:37:41 -0400 Subject: [PATCH] service/nvdrv: Take std::string in Open() by const reference Avoids copies from being made, since the string is only ever used for lookup, the data is never transfered anywhere. Ideally, we'd use a std::string_view here, but devices is a std::unordered_map, not a std::map, so we can't use heterogenous lookup here. --- src/core/hle/service/nvdrv/nvdrv.cpp | 2 +- src/core/hle/service/nvdrv/nvdrv.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/hle/service/nvdrv/nvdrv.cpp b/src/core/hle/service/nvdrv/nvdrv.cpp index c5d3e2fff..1555ea806 100644 --- a/src/core/hle/service/nvdrv/nvdrv.cpp +++ b/src/core/hle/service/nvdrv/nvdrv.cpp @@ -42,7 +42,7 @@ Module::Module() { devices["/dev/nvhost-nvdec"] = std::make_shared(); } -u32 Module::Open(std::string device_name) { +u32 Module::Open(const std::string& device_name) { ASSERT_MSG(devices.find(device_name) != devices.end(), "Trying to open unknown device {}", device_name); diff --git a/src/core/hle/service/nvdrv/nvdrv.h b/src/core/hle/service/nvdrv/nvdrv.h index 35b2c65fc..184f3c9fc 100644 --- a/src/core/hle/service/nvdrv/nvdrv.h +++ b/src/core/hle/service/nvdrv/nvdrv.h @@ -38,7 +38,7 @@ public: } /// Opens a device node and returns a file descriptor to it. - u32 Open(std::string device_name); + u32 Open(const std::string& device_name); /// Sends an ioctl command to the specified file descriptor. u32 Ioctl(u32 fd, u32 command, const std::vector& input, std::vector& output); /// Closes a device file descriptor and returns operation success.