Switching to using a helper function instead of manually converting the string to...
authorAaron Ballman <aaron@aaronballman.com>
Fri, 16 Aug 2013 17:53:28 +0000 (17:53 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Fri, 16 Aug 2013 17:53:28 +0000 (17:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188566 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Windows/Path.inc

index 1694cb28b233abb9cef8e6a17c8aaf3c700746d9..093f374a29a688812dcb7db145324a180f04f96c 100644 (file)
@@ -310,30 +310,7 @@ retry_cur_dir:
   }
 
   cur_path.set_size(len);
-  // cur_path now holds the current directory in utf-16. Convert to utf-8.
-
-  // Find out how much space we need. Sadly, this function doesn't return the
-  // size needed unless you tell it the result size is 0, which means you
-  // _always_ have to call it twice.
-  len = ::WideCharToMultiByte(CP_UTF8, 0,
-                              cur_path.data(), cur_path.size(),
-                              result.data(), 0,
-                              NULL, NULL);
-
-  if (len == 0)
-    return make_error_code(windows_error(::GetLastError()));
-
-  result.reserve(len);
-  result.set_size(len);
-  // Now do the actual conversion.
-  len = ::WideCharToMultiByte(CP_UTF8, 0,
-                              cur_path.data(), cur_path.size(),
-                              result.data(), result.size(),
-                              NULL, NULL);
-  if (len == 0)
-    return windows_error(::GetLastError());
-
-  return error_code::success();
+  return UTF16ToUTF8(cur_path.begin(), cur_path.size(), result);
 }
 
 error_code create_directory(const Twine &path, bool &existed) {