[support] Revert the changes made to Path.inc for the default Windows code page
authorAaron Smith <aaron.smith@microsoft.com>
Wed, 18 Apr 2018 15:26:26 +0000 (15:26 +0000)
committerAaron Smith <aaron.smith@microsoft.com>
Wed, 18 Apr 2018 15:26:26 +0000 (15:26 +0000)
Path.inc/widenPath tries to decode the path using both UTF-8 and the default Windows code page.
This is no longer necessary with the new InitLLVM method which ensures that the command line
arguemnts are already UTF-8 on Windows.

llvm-svn: 330266

llvm/lib/Support/Windows/Path.inc

index 3621ac4..6ff9b12 100644 (file)
@@ -63,7 +63,7 @@ namespace llvm {
 namespace sys  {
 namespace path {
 
-// Convert a (likely) UTF-8 path to UTF-16.  Also, if the absolute equivalent of the
+// Convert a UTF-8 path to UTF-16.  Also, if the absolute equivalent of the
 // path is longer than CreateDirectory can tolerate, make it absolute and
 // prefixed by '\\?\'.
 std::error_code widenPath(const Twine &Path8,
@@ -72,7 +72,7 @@ std::error_code widenPath(const Twine &Path8,
 
   // Several operations would convert Path8 to SmallString; more efficient to
   // do it once up front.
-  SmallString<2*MAX_PATH> Path8Str;
+  SmallString<128> Path8Str;
   Path8.toVector(Path8Str);
 
   // If we made this path absolute, how much longer would it get?
@@ -112,17 +112,11 @@ std::error_code widenPath(const Twine &Path8,
       else
         llvm::sys::path::append(FullPath, *I);
     }
-    Path8Str = FullPath;
+    return UTF8ToUTF16(FullPath, Path16);
   }
 
-  // Path8Str now contains the full path or the original path
-  // If the conversion from UTF8 to UTF16 fails because of ERROR_NO_UNICODE_TRANSLATION,
-  // we also try using the current code page before giving up
-  auto ec = UTF8ToUTF16(Path8Str, Path16);
-  if (ec == mapWindowsError(ERROR_NO_UNICODE_TRANSLATION)) {
-    ec = CurCPToUTF16(Path8Str, Path16);
-  }
-  return ec;
+  // Just use the caller's original path.
+  return UTF8ToUTF16(Path8Str, Path16);
 }
 } // end namespace path