diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2017-11-21 05:35:45 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2017-11-21 05:35:45 +0000 |
commit | 811d5e86a2e5266da69e2b108541d0aaacea0cd9 (patch) | |
tree | 276e797f7159732e33bfe3b68f6d61847605b878 /llvm/lib/Support/Windows | |
parent | fc1ff29966786694ed4418372914842b4e6f817b (diff) | |
download | bcm5719-llvm-811d5e86a2e5266da69e2b108541d0aaacea0cd9.tar.gz bcm5719-llvm-811d5e86a2e5266da69e2b108541d0aaacea0cd9.zip |
move static function. NFC
llvm-svn: 318729
Diffstat (limited to 'llvm/lib/Support/Windows')
-rw-r--r-- | llvm/lib/Support/Windows/Path.inc | 50 |
1 files changed, 24 insertions, 26 deletions
diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index 18306251fdc..dceaaa1542c 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -418,32 +418,6 @@ static std::error_code rename_internal(HANDLE FromHandle, const Twine &To, return std::error_code(); } -static std::error_code rename_handle(HANDLE Handle, const Twine &To); - -std::error_code rename(const Twine &From, const Twine &To) { - // Convert to utf-16. - SmallVector<wchar_t, 128> WideFrom; - if (std::error_code EC = widenPath(From, WideFrom)) - return EC; - - ScopedFileHandle FromHandle; - // Retry this a few times to defeat badly behaved file system scanners. - for (unsigned Retry = 0; Retry != 200; ++Retry) { - if (Retry != 0) - ::Sleep(10); - FromHandle = - ::CreateFileW(WideFrom.begin(), GENERIC_READ | DELETE, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (FromHandle) - break; - } - if (!FromHandle) - return mapWindowsError(GetLastError()); - - return rename_handle(FromHandle, To); -} - static std::error_code rename_handle(HANDLE FromHandle, const Twine &To) { SmallVector<wchar_t, 128> WideTo; if (std::error_code EC = widenPath(To, WideTo)) @@ -539,6 +513,30 @@ static std::error_code rename_handle(HANDLE FromHandle, const Twine &To) { return errc::permission_denied; } +std::error_code rename(const Twine &From, const Twine &To) { + // Convert to utf-16. + SmallVector<wchar_t, 128> WideFrom; + if (std::error_code EC = widenPath(From, WideFrom)) + return EC; + + ScopedFileHandle FromHandle; + // Retry this a few times to defeat badly behaved file system scanners. + for (unsigned Retry = 0; Retry != 200; ++Retry) { + if (Retry != 0) + ::Sleep(10); + FromHandle = + ::CreateFileW(WideFrom.begin(), GENERIC_READ | DELETE, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + if (FromHandle) + break; + } + if (!FromHandle) + return mapWindowsError(GetLastError()); + + return rename_handle(FromHandle, To); +} + std::error_code resize_file(int FD, uint64_t Size) { #ifdef HAVE__CHSIZE_S errno_t error = ::_chsize_s(FD, Size); |