[Support][Path][Windows] Fix dangling else. Don't call CloseHandle when CloseFD is false.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177175 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Michael J. Spencer 2013-03-15 19:25:47 +00:00
parent 5193e4ebe2
commit 1f81ebcbae

View File

@ -715,10 +715,10 @@ error_code mapped_file_region::init(int FD, bool CloseFD, uint64_t Offset) {
FileDescriptor = FD; FileDescriptor = FD;
// Make sure that the requested size fits within SIZE_T. // Make sure that the requested size fits within SIZE_T.
if (Size > std::numeric_limits<SIZE_T>::max()) { if (Size > std::numeric_limits<SIZE_T>::max()) {
if (FileDescriptor) if (FileDescriptor) {
if (CloseFD) if (CloseFD)
_close(FileDescriptor); _close(FileDescriptor);
else } else
::CloseHandle(FileHandle); ::CloseHandle(FileHandle);
return make_error_code(errc::invalid_argument); return make_error_code(errc::invalid_argument);
} }
@ -739,10 +739,10 @@ error_code mapped_file_region::init(int FD, bool CloseFD, uint64_t Offset) {
0); 0);
if (FileMappingHandle == NULL) { if (FileMappingHandle == NULL) {
error_code ec = windows_error(GetLastError()); error_code ec = windows_error(GetLastError());
if (FileDescriptor) if (FileDescriptor) {
if (CloseFD) if (CloseFD)
_close(FileDescriptor); _close(FileDescriptor);
else } else
::CloseHandle(FileHandle); ::CloseHandle(FileHandle);
return ec; return ec;
} }
@ -762,10 +762,10 @@ error_code mapped_file_region::init(int FD, bool CloseFD, uint64_t Offset) {
if (Mapping == NULL) { if (Mapping == NULL) {
error_code ec = windows_error(GetLastError()); error_code ec = windows_error(GetLastError());
::CloseHandle(FileMappingHandle); ::CloseHandle(FileMappingHandle);
if (FileDescriptor) if (FileDescriptor) {
if (CloseFD) if (CloseFD)
_close(FileDescriptor); _close(FileDescriptor);
else } else
::CloseHandle(FileHandle); ::CloseHandle(FileHandle);
return ec; return ec;
} }
@ -777,10 +777,10 @@ error_code mapped_file_region::init(int FD, bool CloseFD, uint64_t Offset) {
error_code ec = windows_error(GetLastError()); error_code ec = windows_error(GetLastError());
::UnmapViewOfFile(Mapping); ::UnmapViewOfFile(Mapping);
::CloseHandle(FileMappingHandle); ::CloseHandle(FileMappingHandle);
if (FileDescriptor) if (FileDescriptor) {
if (CloseFD) if (CloseFD)
_close(FileDescriptor); _close(FileDescriptor);
else } else
::CloseHandle(FileHandle); ::CloseHandle(FileHandle);
return ec; return ec;
} }
@ -790,10 +790,10 @@ error_code mapped_file_region::init(int FD, bool CloseFD, uint64_t Offset) {
// Close all the handles except for the view. It will keep the other handles // Close all the handles except for the view. It will keep the other handles
// alive. // alive.
::CloseHandle(FileMappingHandle); ::CloseHandle(FileMappingHandle);
if (FileDescriptor) if (FileDescriptor) {
if (CloseFD) if (CloseFD)
_close(FileDescriptor); // Also closes FileHandle. _close(FileDescriptor); // Also closes FileHandle.
else } else
::CloseHandle(FileHandle); ::CloseHandle(FileHandle);
return error_code::success(); return error_code::success();
} }