Преглед изворни кода

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.
Lioncash пре 8 година
родитељ
комит
f9951352f6
2 измењених фајлова са 2 додато и 2 уклоњено
  1. 1 1
      src/core/hle/service/nvdrv/nvdrv.cpp
  2. 1 1
      src/core/hle/service/nvdrv/nvdrv.h

+ 1 - 1
src/core/hle/service/nvdrv/nvdrv.cpp

@@ -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);
 
 

+ 1 - 1
src/core/hle/service/nvdrv/nvdrv.h

@@ -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.