Skip to content

Commit d713fe1

Browse files
committed
move static function. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318729 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 98ed2b2 commit d713fe1

File tree

1 file changed

+24
-26
lines changed

1 file changed

+24
-26
lines changed

lib/Support/Windows/Path.inc

+24-26
Original file line numberDiff line numberDiff line change
@@ -418,32 +418,6 @@ static std::error_code rename_internal(HANDLE FromHandle, const Twine &To,
418418
return std::error_code();
419419
}
420420

421-
static std::error_code rename_handle(HANDLE Handle, const Twine &To);
422-
423-
std::error_code rename(const Twine &From, const Twine &To) {
424-
// Convert to utf-16.
425-
SmallVector<wchar_t, 128> WideFrom;
426-
if (std::error_code EC = widenPath(From, WideFrom))
427-
return EC;
428-
429-
ScopedFileHandle FromHandle;
430-
// Retry this a few times to defeat badly behaved file system scanners.
431-
for (unsigned Retry = 0; Retry != 200; ++Retry) {
432-
if (Retry != 0)
433-
::Sleep(10);
434-
FromHandle =
435-
::CreateFileW(WideFrom.begin(), GENERIC_READ | DELETE,
436-
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
437-
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
438-
if (FromHandle)
439-
break;
440-
}
441-
if (!FromHandle)
442-
return mapWindowsError(GetLastError());
443-
444-
return rename_handle(FromHandle, To);
445-
}
446-
447421
static std::error_code rename_handle(HANDLE FromHandle, const Twine &To) {
448422
SmallVector<wchar_t, 128> WideTo;
449423
if (std::error_code EC = widenPath(To, WideTo))
@@ -539,6 +513,30 @@ static std::error_code rename_handle(HANDLE FromHandle, const Twine &To) {
539513
return errc::permission_denied;
540514
}
541515

516+
std::error_code rename(const Twine &From, const Twine &To) {
517+
// Convert to utf-16.
518+
SmallVector<wchar_t, 128> WideFrom;
519+
if (std::error_code EC = widenPath(From, WideFrom))
520+
return EC;
521+
522+
ScopedFileHandle FromHandle;
523+
// Retry this a few times to defeat badly behaved file system scanners.
524+
for (unsigned Retry = 0; Retry != 200; ++Retry) {
525+
if (Retry != 0)
526+
::Sleep(10);
527+
FromHandle =
528+
::CreateFileW(WideFrom.begin(), GENERIC_READ | DELETE,
529+
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
530+
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
531+
if (FromHandle)
532+
break;
533+
}
534+
if (!FromHandle)
535+
return mapWindowsError(GetLastError());
536+
537+
return rename_handle(FromHandle, To);
538+
}
539+
542540
std::error_code resize_file(int FD, uint64_t Size) {
543541
#ifdef HAVE__CHSIZE_S
544542
errno_t error = ::_chsize_s(FD, Size);

0 commit comments

Comments
 (0)