[llvm] r189021 - [Win32] mapped_file_region: Fix a bug in CreateFileMapping() that Size must contain Offset when Offset >= 65536.

NAKAMURA Takumi geek4civic at gmail.com
Thu Aug 22 08:14:54 PDT 2013


Author: chapuni
Date: Thu Aug 22 10:14:53 2013
New Revision: 189021

URL: http://llvm.org/viewvc/llvm-project?rev=189021&view=rev
Log:
[Win32] mapped_file_region: Fix a bug in CreateFileMapping() that Size must contain Offset when Offset >= 65536.

Modified:
    llvm/trunk/lib/Support/Windows/Path.inc
    llvm/trunk/unittests/Support/MemoryBufferTest.cpp

Modified: llvm/trunk/lib/Support/Windows/Path.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Path.inc?rev=189021&r1=189020&r2=189021&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Path.inc (original)
+++ llvm/trunk/lib/Support/Windows/Path.inc Thu Aug 22 10:14:53 2013
@@ -726,8 +726,8 @@ error_code mapped_file_region::init(int
   FileMappingHandle = ::CreateFileMapping(FileHandle,
                                           0,
                                           flprotect,
-                                          Size >> 32,
-                                          Size & 0xffffffff,
+                                          (Offset + Size) >> 32,
+                                          (Offset + Size) & 0xffffffff,
                                           0);
   if (FileMappingHandle == NULL) {
     error_code ec = windows_error(GetLastError());

Modified: llvm/trunk/unittests/Support/MemoryBufferTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/MemoryBufferTest.cpp?rev=189021&r1=189020&r2=189021&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/MemoryBufferTest.cpp (original)
+++ llvm/trunk/unittests/Support/MemoryBufferTest.cpp Thu Aug 22 10:14:53 2013
@@ -138,9 +138,6 @@ void MemoryBufferTest::testGetOpenFileSl
   EXPECT_EQ(BufData[9], '9');
 }
 
-#if !defined(_WIN32)
-// FIXME: Investigating since r188998.
-
 TEST_F(MemoryBufferTest, getOpenFileNoReopen) {
   testGetOpenFileSlice(false);
 }
@@ -149,6 +146,4 @@ TEST_F(MemoryBufferTest, getOpenFileReop
   testGetOpenFileSlice(true);
 }
 
-#endif // _WIN32
-
 }





More information about the llvm-commits mailing list