get rid of internal Close() method
This commit is contained in:
@@ -21,8 +21,14 @@ namespace OpenVulkano
|
||||
|
||||
void MemMappedFile::Close()
|
||||
{
|
||||
m_internal->Close();
|
||||
m_internal = nullptr;
|
||||
if (m_internal.use_count() == 1)
|
||||
{
|
||||
m_internal = nullptr;
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger::APP->warn("Can't close memory mapped file since it's being shared among {} instances", m_internal.use_count());
|
||||
}
|
||||
m_data = nullptr;
|
||||
m_size = 0;
|
||||
}
|
||||
|
||||
@@ -90,20 +90,11 @@ namespace OpenVulkano
|
||||
}
|
||||
}
|
||||
|
||||
void MemMappedFileInternal::Close()
|
||||
MemMappedFileInternal::~MemMappedFileInternal()
|
||||
{
|
||||
UnmapViewOfFile(address);
|
||||
CloseHandle(fileMappingHandle);
|
||||
CloseHandle(fileHandle);
|
||||
closed = true;
|
||||
}
|
||||
|
||||
MemMappedFileInternal::~MemMappedFileInternal()
|
||||
{
|
||||
if (!closed)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
#else
|
||||
MemMappedFileInternal::MemMappedFileInternal(const char* file, MemMappedFile::FileMode fileMode)
|
||||
@@ -123,19 +114,10 @@ namespace OpenVulkano
|
||||
size = fileStat.st_size;
|
||||
}
|
||||
|
||||
void MemMappedFileInternal::Close()
|
||||
MemMappedFileInternal::~MemMappedFileInternal()
|
||||
{
|
||||
munmap(address, fileStat.st_size);
|
||||
close(fileHandle);
|
||||
closed = true;
|
||||
}
|
||||
|
||||
MemMappedFileInternal::~MemMappedFileInternal()
|
||||
{
|
||||
if (!closed)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -34,12 +34,10 @@ namespace OpenVulkano
|
||||
#else
|
||||
[[nodiscard]] bool InvalidHandle() const { return fileHandle == -1; }
|
||||
#endif
|
||||
void Close();
|
||||
|
||||
private:
|
||||
void* address = nullptr;
|
||||
size_t size = 0;
|
||||
bool closed = false;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
HANDLE fileHandle;
|
||||
|
||||
Reference in New Issue
Block a user