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.
This commit is contained in:
Lioncash 2018-07-25 17:37:41 -04:00
parent a2cd07d094
commit f9951352f6
2 changed files with 2 additions and 2 deletions

View File

@ -42,7 +42,7 @@ Module::Module() {
devices["/dev/nvhost-nvdec"] = std::make_shared<Devices::nvhost_nvdec>(); devices["/dev/nvhost-nvdec"] = std::make_shared<Devices::nvhost_nvdec>();
} }
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 {}", ASSERT_MSG(devices.find(device_name) != devices.end(), "Trying to open unknown device {}",
device_name); device_name);

View File

@ -38,7 +38,7 @@ public:
} }
/// Opens a device node and returns a file descriptor to it. /// 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. /// Sends an ioctl command to the specified file descriptor.
u32 Ioctl(u32 fd, u32 command, const std::vector<u8>& input, std::vector<u8>& output); u32 Ioctl(u32 fd, u32 command, const std::vector<u8>& input, std::vector<u8>& output);
/// Closes a device file descriptor and returns operation success. /// Closes a device file descriptor and returns operation success.