Browse Source

svc: Do nothing if svcOutputDebugString() is given a length of zero

While unlikely, it does avoid constructing a std::string and
unnecessarily calling into the memory code if a game or executable
decides to be really silly about their logging.
Lioncash 7 years ago
parent
commit
9b3bc0b282
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/core/hle/kernel/svc.cpp

+ 4 - 0
src/core/hle/kernel/svc.cpp

@@ -274,6 +274,10 @@ static void Break(u64 reason, u64 info1, u64 info2) {
 
 /// Used to output a message on a debug hardware unit - does nothing on a retail unit
 static void OutputDebugString(VAddr address, u64 len) {
+    if (len == 0) {
+        return;
+    }
+
     std::string str(len, '\0');
     Memory::ReadBlock(address, str.data(), str.size());
     LOG_DEBUG(Debug_Emulated, "{}", str);