Browse Source

[chore] It can possible kill someone

Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
mmap-fixews
Caio Oliveira 5 days ago
parent
commit
4a637df536
  1. 4
      src/common/fs/file.cpp
  2. 8
      src/common/fs/file.h

4
src/common/fs/file.cpp

@ -403,7 +403,11 @@ void IOFile::Open(const fs::path& path, FileAccessMode mode, FileType type, File
}
void IOFile::Close() {
#if defined(__APPLE__)
// NO IMPLEMENTATION YET
#else
PlatformUnmap(*this);
#endif
if (file) {
errno = 0;
const auto close_result = std::fclose(file) == 0;

8
src/common/fs/file.h

@ -322,7 +322,11 @@ public:
static_assert(!std::is_pointer_v<T>, "T must not be a pointer to an object.");
if (IsMappedFile()) {
std::memcpy(&object, mmap_base + mmap_offset, sizeof(T));
#ifdef _WIN32
return sizeof(T) != 0;
#else
return sizeof(T);
#endif
}
return IsOpen() ? std::fread(&object, sizeof(T), 1, file) == 1 : false;
}
@ -348,7 +352,11 @@ public:
static_assert(!std::is_pointer_v<T>, "T must not be a pointer to an object.");
if (IsMappedFile()) {
std::memcpy(mmap_base + mmap_offset, &object, sizeof(T));
#ifdef _WIN32
return sizeof(T) != 0;
#else
return sizeof(T);
#endif
}
return IsOpen() ? std::fwrite(&object, sizeof(T), 1, file) == 1 : false;
}

Loading…
Cancel
Save