[*] Resolve IO regressions (4. Hello FS) (Mostly UNIX)
This commit is contained in:
parent
11ef18cbf0
commit
5d12f1a203
@ -270,7 +270,6 @@ namespace Aurora::IO::FS
|
||||
// Do not entertain an arbitrarily large page length provided by non-regular fds
|
||||
|
||||
buffer.writePtr += uLength;
|
||||
|
||||
if (bIsZero)
|
||||
{
|
||||
AuTryDownsize(buffer, uLength);
|
||||
|
@ -38,7 +38,6 @@ namespace Aurora::IO::FS
|
||||
#else
|
||||
#error accient 32-bit posix operating systems require 64-bit file awareness
|
||||
#endif
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
//SysPushErrorIO("PosixLseek63 IO Error: %i", ret);
|
||||
@ -56,7 +55,7 @@ namespace Aurora::IO::FS
|
||||
static AuUInt64 PosixGetOffset(int fd)
|
||||
{
|
||||
AuUInt64 ret;
|
||||
if (!PosixLseek63(fd, 0, SEEK_SET, &ret))
|
||||
if (!PosixLseek63(fd, 0, SEEK_CUR, &ret))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@ -73,14 +72,13 @@ namespace Aurora::IO::FS
|
||||
AuUInt64 ret {}, old {};
|
||||
bool status {};
|
||||
|
||||
if (!PosixLseek63(fd, 0, SEEK_SET, &old))
|
||||
if (!PosixLseek63(fd, 0, SEEK_CUR, &old))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
status = PosixLseek63(fd, 0, SEEK_END, &ret);
|
||||
status &= PosixLseek63(fd, old, SEEK_SET, nullptr);
|
||||
|
||||
return status ? ret : 0;
|
||||
}
|
||||
|
||||
@ -239,6 +237,7 @@ namespace Aurora::IO::FS
|
||||
|
||||
parameters.outVariable = 0;
|
||||
|
||||
|
||||
if (!this->pHandle_)
|
||||
{
|
||||
SysPushErrorUninitialized();
|
||||
@ -378,7 +377,7 @@ namespace Aurora::IO::FS
|
||||
return;
|
||||
}
|
||||
|
||||
::ftruncate(fd, GetOffset());
|
||||
::ftruncate(fd, PosixGetOffset(fd));
|
||||
}
|
||||
|
||||
void PosixFileStream::MakeTemporary()
|
||||
|
Loading…
Reference in New Issue
Block a user