From de043ca777d6dfc3af7557a484e2bd52883a6353 Mon Sep 17 00:00:00 2001 From: Martin Ridgers Date: Mon, 18 Oct 2021 11:21:32 +0200 Subject: Implemented ReadFromFileMaybe() for POSIX --- zencore/iobuffer.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/zencore/iobuffer.cpp b/zencore/iobuffer.cpp index 63d5ac98d..04ea7c26b 100644 --- a/zencore/iobuffer.cpp +++ b/zencore/iobuffer.cpp @@ -391,18 +391,22 @@ IoBufferBuilder::ReadFromFileMaybe(IoBuffer& InBuffer) DWORD dwNumberOfBytesRead = 0; BOOL Success = ::ReadFile(FileRef.FileHandle, OutBuffer.MutableData(), DWORD(NumberOfBytesToRead), &dwNumberOfBytesRead, &Ovl); +#else + int Fd = int(intptr_t(FileRef.FileHandle)); + int Result = pread(Fd, OutBuffer.MutableData(), size_t(FileRef.FileChunkSize), off_t(FileRef.FileChunkOffset)); + bool Success = (Result < 0); + + uint32_t dwNumberOfBytesRead = uint32_t(Result); +#endif if (!Success) { ThrowLastError("ReadFile failed in IoBufferBuilder::ReadFromFileMaybe"); } - ZEN_ASSERT(dwNumberOfBytesRead == NumberOfBytesToRead); + ZEN_ASSERT(dwNumberOfBytesRead == FileRef.FileChunkSize); return OutBuffer; -#else -# error Needs implementation -#endif } else { -- cgit v1.2.3