From: Aaron Smith Date: Wed, 18 Apr 2018 15:26:26 +0000 (+0000) Subject: [support] Revert the changes made to Path.inc for the default Windows code page X-Git-Tag: llvmorg-7.0.0-rc1~7975 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=02caafd7e5594123d44556a800545d7c71b175ff;p=platform%2Fupstream%2Fllvm.git [support] Revert the changes made to Path.inc for the default Windows code page 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 --- diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index 3621ac4..6ff9b12 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -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