@@ -266,8 +266,9 @@ MemoryBuffer::getFile(const Twine &Filename, bool IsText,
266
266
template <typename MB>
267
267
static ErrorOr<std::unique_ptr<MB>>
268
268
getOpenFileImpl (sys::fs::file_t FD, const Twine &Filename, uint64_t FileSize,
269
- uint64_t MapSize, int64_t Offset, bool RequiresNullTerminator,
270
- bool IsVolatile, std::optional<Align> Alignment);
269
+ uint64_t MapSize, int64_t Offset, bool IsText,
270
+ bool RequiresNullTerminator, bool IsVolatile,
271
+ std::optional<Align> Alignment);
271
272
272
273
template <typename MB>
273
274
static ErrorOr<std::unique_ptr<MB>>
@@ -280,7 +281,8 @@ getFileAux(const Twine &Filename, uint64_t MapSize, uint64_t Offset,
280
281
return errorToErrorCode (FDOrErr.takeError ());
281
282
sys::fs::file_t FD = *FDOrErr;
282
283
auto Ret = getOpenFileImpl<MB>(FD, Filename, /* FileSize=*/ -1 , MapSize, Offset,
283
- RequiresNullTerminator, IsVolatile, Alignment);
284
+ IsText, RequiresNullTerminator, IsVolatile,
285
+ Alignment);
284
286
sys::fs::closeFile (FD);
285
287
return Ret;
286
288
}
@@ -468,8 +470,9 @@ WriteThroughMemoryBuffer::getFileSlice(const Twine &Filename, uint64_t MapSize,
468
470
template <typename MB>
469
471
static ErrorOr<std::unique_ptr<MB>>
470
472
getOpenFileImpl (sys::fs::file_t FD, const Twine &Filename, uint64_t FileSize,
471
- uint64_t MapSize, int64_t Offset, bool RequiresNullTerminator,
472
- bool IsVolatile, std::optional<Align> Alignment) {
473
+ uint64_t MapSize, int64_t Offset, bool IsText,
474
+ bool RequiresNullTerminator, bool IsVolatile,
475
+ std::optional<Align> Alignment) {
473
476
static int PageSize = sys::Process::getPageSizeEstimate ();
474
477
475
478
// Default is to map the full file.
@@ -506,7 +509,7 @@ getOpenFileImpl(sys::fs::file_t FD, const Twine &Filename, uint64_t FileSize,
506
509
// from the page cache that are not properly filled with trailing zeroes,
507
510
// if some prior user of the page wrote non-zero bytes. Detect this and
508
511
// don't use mmap in that case.
509
- if (!RequiresNullTerminator || *Result->getBufferEnd () == ' \0 ' )
512
+ if (!IsText || *Result->getBufferEnd () == ' \0 ' )
510
513
return std::move (Result);
511
514
}
512
515
}
@@ -555,16 +558,16 @@ MemoryBuffer::getOpenFile(sys::fs::file_t FD, const Twine &Filename,
555
558
uint64_t FileSize, bool RequiresNullTerminator,
556
559
bool IsVolatile, std::optional<Align> Alignment) {
557
560
return getOpenFileImpl<MemoryBuffer>(FD, Filename, FileSize, FileSize, 0 ,
558
- RequiresNullTerminator, IsVolatile ,
559
- Alignment);
561
+ false , RequiresNullTerminator ,
562
+ IsVolatile, Alignment);
560
563
}
561
564
562
565
ErrorOr<std::unique_ptr<MemoryBuffer>> MemoryBuffer::getOpenFileSlice (
563
566
sys::fs::file_t FD, const Twine &Filename, uint64_t MapSize, int64_t Offset,
564
567
bool IsVolatile, std::optional<Align> Alignment) {
565
568
assert (MapSize != uint64_t (-1 ));
566
569
return getOpenFileImpl<MemoryBuffer>(FD, Filename, -1 , MapSize, Offset, false ,
567
- IsVolatile, Alignment);
570
+ false , IsVolatile, Alignment);
568
571
}
569
572
570
573
ErrorOr<std::unique_ptr<MemoryBuffer>> MemoryBuffer::getSTDIN () {
0 commit comments