Changeset 5011 for trunk/src/kernel32/mmap.cpp
- Timestamp:
- Jan 22, 2001, 7:26:52 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/mmap.cpp
r4946 r5011 1 /* $Id: mmap.cpp,v 1.4 8 2001-01-14 17:16:55sandervl Exp $ */1 /* $Id: mmap.cpp,v 1.49 2001-01-22 18:26:51 sandervl Exp $ */ 2 2 3 3 /* … … 55 55 //****************************************************************************** 56 56 Win32MemMap::Win32MemMap(HFILE hfile, ULONG size, ULONG fdwProtect, LPSTR lpszName) 57 : nrMappings(0), pMapping(NULL), mMapAccess(0), referenced(0), image(0), 58 fClosed(FALSE) 57 : nrMappings(0), pMapping(NULL), mMapAccess(0), referenced(0), image(0) 59 58 { 60 59 globalmapMutex.enter(VMUTEX_WAIT_FOREVER, &hGlobalMapMutex); … … 79 78 //****************************************************************************** 80 79 Win32MemMap::Win32MemMap(Win32PeLdrImage *pImage, ULONG baseAddress, ULONG size) 81 : nrMappings(0), pMapping(NULL), mMapAccess(0), referenced(0), image(0), 82 fClosed(FALSE) 80 : nrMappings(0), pMapping(NULL), mMapAccess(0), referenced(0), image(0) 83 81 { 84 82 globalmapMutex.enter(VMUTEX_WAIT_FOREVER, &hGlobalMapMutex); … … 100 98 //****************************************************************************** 101 99 //****************************************************************************** 102 BOOL Win32MemMap::Init( HANDLE hMemMap)100 BOOL Win32MemMap::Init() 103 101 { 104 102 mapMutex.enter(); … … 138 136 139 137 dprintf(("CreateFileMappingA for file %x, prot %x size %d, name %s", hMemFile, mProtFlags, mSize, lpszMapName)); 140 this->hMemMap = hMemMap;141 138 mapMutex.leave(); 142 139 return TRUE; … … 195 192 //it's handle is closed 196 193 //****************************************************************************** 197 void Win32MemMap:: close()194 void Win32MemMap::Release() 198 195 { 199 196 #ifdef DEBUG 200 dprintf(("Win32MemMap:: close %s", lpszMapName));197 dprintf(("Win32MemMap::Release %s (%d)", lpszMapName, referenced-1)); 201 198 #endif 202 fClosed = TRUE;203 if(nrMappings == 0 ) {199 --referenced; 200 if(nrMappings == 0 && referenced == 0) { 204 201 delete this; 205 202 } … … 327 324 //if there are no more mappings left and the memory map's handle has been 328 325 //closed, then delete the object 329 if(nrMappings == 0 && fClosed) {326 if(nrMappings == 0 && referenced == 0) { 330 327 delete this; 331 328 } … … 333 330 fail: 334 331 mapMutex.leave(); 335 if(nrMappings == 0 && fClosed) {332 if(nrMappings == 0 && referenced == 0) { 336 333 delete this; 337 334 } … … 568 565 } 569 566 else { 570 if(!map->isClosed()) 571 CloseHandle(memmaps->hMemMap); 572 else delete map; 567 delete map; 573 568 } 574 569 }
Note:
See TracChangeset
for help on using the changeset viewer.