1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Improve clarity in the Win32 VFS for lsm1.

FossilOrigin-Name: 9c7a9e805d95d3d4a3f7e2d608280b7ca0dda01114e32cd366b1deb14e6e6839
This commit is contained in:
mistachkin
2017-07-07 16:46:08 +00:00
parent baebf3cc4b
commit e60092b90c
3 changed files with 28 additions and 29 deletions

View File

@ -47,12 +47,12 @@ struct Win32File {
LPVOID *apShm; /* Array of 32K shared memory segments */
};
static char *win32ShmFile(Win32File *p){
static char *win32ShmFile(Win32File *pWin32File){
char *zShm;
int nName = strlen(p->zName);
zShm = (char *)lsmMallocZero(p->pEnv, nName+4+1);
int nName = strlen(pWin32File->zName);
zShm = (char *)lsmMallocZero(pWin32File->pEnv, nName+4+1);
if( zShm ){
memcpy(zShm, p->zName, nName);
memcpy(zShm, pWin32File->zName, nName);
memcpy(&zShm[nName], "-shm", 5);
}
return zShm;
@ -380,6 +380,18 @@ static int lsmWin32OsSectorSize(lsm_file *pFile){
return 512;
}
static void win32Unmap(Win32File *pWin32File){
if( pWin32File->pMap!=NULL ){
UnmapViewOfFile(pWin32File->pMap);
pWin32File->pMap = NULL;
pWin32File->nMap = 0;
}
if( pWin32File->hMap!=NULL ){
CloseHandle(pWin32File->hMap);
pWin32File->hMap = NULL;
}
}
static int lsmWin32OsRemap(
lsm_file *pFile,
lsm_i64 iMin,
@ -393,15 +405,10 @@ static int lsmWin32OsRemap(
const int aIncrSz[] = {256*1024, 1024*1024};
int nIncrSz = aIncrSz[iMin>(2*1024*1024)];
if( pWin32File->pMap!=NULL ){
UnmapViewOfFile(pWin32File->pMap);
*ppOut = pWin32File->pMap = NULL;
*pnOut = pWin32File->nMap = 0;
}
if( pWin32File->hMap!=NULL ){
CloseHandle(pWin32File->hMap);
pWin32File->hMap = NULL;
}
*ppOut = NULL;
*pnOut = 0;
win32Unmap(pWin32File);
if( iMin>=0 ){
LARGE_INTEGER fileSize;
DWORD dwSizeHigh;
@ -759,15 +766,7 @@ static int lsmWin32OsClose(lsm_file *pFile){
int nRetry = 0;
Win32File *pWin32File = (Win32File *)pFile;
lsmWin32OsShmUnmap(pFile, 0);
if( pWin32File->pMap!=NULL ){
UnmapViewOfFile(pWin32File->pMap);
pWin32File->pMap = NULL;
pWin32File->nMap = 0;
}
if( pWin32File->hMap!=NULL ){
CloseHandle(pWin32File->hMap);
pWin32File->hMap = NULL;
}
win32Unmap(pWin32File);
do{
if( pWin32File->hFile==NULL ){
rc = LSM_IOERR_BKPT;