@@ -37,11 +37,11 @@ bool PCSX::SharedMem::init(const char* id, size_t size, bool initToZero) {
37
37
// Try to create a shared memory mapping, if an id is provided
38
38
if (id != nullptr ) {
39
39
// Build the full name to share as
40
- std::string fullname = getSharedName (id, static_cast <uint32_t >(GetCurrentProcessId ()));
40
+ m_sharedName = getSharedName (id, static_cast <uint32_t >(GetCurrentProcessId ()));
41
41
// Create the memory mapping handle
42
42
m_fileHandle =
43
43
CreateFileMappingA (INVALID_HANDLE_VALUE, nullptr , PAGE_READWRITE, static_cast <uint32_t >(size >> 32 ),
44
- static_cast <uint32_t >(size), fullname .c_str ());
44
+ static_cast <uint32_t >(size), m_sharedName .c_str ());
45
45
if (m_fileHandle != INVALID_HANDLE_VALUE) {
46
46
// Create a view of the memory mapping at 0 offset
47
47
void * basePointer = MapViewOfFileEx (m_fileHandle, FILE_MAP_READ | FILE_MAP_WRITE, 0 , 0 , size, nullptr );
@@ -56,9 +56,11 @@ bool PCSX::SharedMem::init(const char* id, size_t size, bool initToZero) {
56
56
} else {
57
57
CloseHandle (m_fileHandle);
58
58
m_fileHandle = nullptr ;
59
+ m_sharedName.clear ();
59
60
}
60
61
} else {
61
62
m_fileHandle = nullptr ;
63
+ m_sharedName.clear ();
62
64
}
63
65
}
64
66
// Alloc memory directly if we opted out or had problems creating the memory map
@@ -76,6 +78,7 @@ PCSX::SharedMem::~SharedMem() {
76
78
m_mem = nullptr ;
77
79
CloseHandle (m_fileHandle);
78
80
m_fileHandle = nullptr ;
81
+ m_sharedName.clear ();
79
82
} else {
80
83
free (m_mem);
81
84
}
0 commit comments