Browse Source

[chore] It can possible kill someone

Signed-off-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Caio Oliveira 7 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() { void IOFile::Close() {
#if defined(__APPLE__)
// NO IMPLEMENTATION YET
#else
PlatformUnmap(*this); PlatformUnmap(*this);
#endif
if (file) { if (file) {
errno = 0; errno = 0;
const auto close_result = std::fclose(file) == 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."); static_assert(!std::is_pointer_v<T>, "T must not be a pointer to an object.");
if (IsMappedFile()) { if (IsMappedFile()) {
std::memcpy(&object, mmap_base + mmap_offset, sizeof(T)); std::memcpy(&object, mmap_base + mmap_offset, sizeof(T));
#ifdef _WIN32
return sizeof(T) != 0;
#else
return sizeof(T); return sizeof(T);
#endif
} }
return IsOpen() ? std::fread(&object, sizeof(T), 1, file) == 1 : false; 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."); static_assert(!std::is_pointer_v<T>, "T must not be a pointer to an object.");
if (IsMappedFile()) { if (IsMappedFile()) {
std::memcpy(mmap_base + mmap_offset, &object, sizeof(T)); std::memcpy(mmap_base + mmap_offset, &object, sizeof(T));
#ifdef _WIN32
return sizeof(T) != 0;
#else
return sizeof(T); return sizeof(T);
#endif
} }
return IsOpen() ? std::fwrite(&object, sizeof(T), 1, file) == 1 : false; return IsOpen() ? std::fwrite(&object, sizeof(T), 1, file) == 1 : false;
} }

Loading…
Cancel
Save