Fix is_eof in case of unsuccessful read.
GitOrigin-RevId: b5a48f7818a02f6d0cf16b11a0745cf7fdeff326
This commit is contained in:
parent
ed53b1a819
commit
8aab98871e
@ -7,8 +7,6 @@
|
|||||||
#include "td/utils/port/FileFd.h"
|
#include "td/utils/port/FileFd.h"
|
||||||
|
|
||||||
#if TD_PORT_WINDOWS
|
#if TD_PORT_WINDOWS
|
||||||
#include "td/utils/misc.h" // for narrow_cast
|
|
||||||
|
|
||||||
#include "td/utils/port/Stat.h"
|
#include "td/utils/port/Stat.h"
|
||||||
#include "td/utils/port/wstring_convert.h"
|
#include "td/utils/port/wstring_convert.h"
|
||||||
#endif
|
#endif
|
||||||
@ -222,7 +220,7 @@ Result<size_t> FileFd::read(MutableSlice slice) {
|
|||||||
#if TD_PORT_POSIX
|
#if TD_PORT_POSIX
|
||||||
auto bytes_read = detail::skip_eintr([&] { return ::read(native_fd, slice.begin(), slice.size()); });
|
auto bytes_read = detail::skip_eintr([&] { return ::read(native_fd, slice.begin(), slice.size()); });
|
||||||
bool success = bytes_read >= 0;
|
bool success = bytes_read >= 0;
|
||||||
bool is_eof = narrow_cast<size_t>(bytes_read) < slice.size();
|
bool is_eof = success && narrow_cast<size_t>(bytes_read) < slice.size();
|
||||||
#elif TD_PORT_WINDOWS
|
#elif TD_PORT_WINDOWS
|
||||||
DWORD bytes_read = 0;
|
DWORD bytes_read = 0;
|
||||||
BOOL success = ReadFile(native_fd, slice.data(), narrow_cast<DWORD>(slice.size()), &bytes_read, nullptr);
|
BOOL success = ReadFile(native_fd, slice.data(), narrow_cast<DWORD>(slice.size()), &bytes_read, nullptr);
|
||||||
|
Reference in New Issue
Block a user