]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When using mmap mode on Win32, use a read-only mapping by default. Write to the datab...
authormistachkin <mistachkin@noemail.net>
Tue, 17 Nov 2015 21:42:32 +0000 (21:42 +0000)
committermistachkin <mistachkin@noemail.net>
Tue, 17 Nov 2015 21:42:32 +0000 (21:42 +0000)
FossilOrigin-Name: 4f521b5bb36a1117db324e92dcf80abd2f1a5bc1

manifest
manifest.uuid
src/os_win.c

index 41d79457881afa4541d96840ba02da92a181df6d..3977bc21ceda3ea8be225dd7e8f263012b0fea6b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C When\susing\smmap\smode\son\sunix,\suse\sa\sread-only\smapping\sby\sdefault.\sWrite\sto\sthe\sdatabase\sfile\susing\swrite().\sUnless\sSQLITE_MMAP_READWRITE\sis\sdefined,\sin\swhich\scase\suse\sa\sread/write\smapping\sand\swrite\sinto\sthe\sfile\susing\smemcpy().
-D 2015-11-17T20:56:06.787
+C When\susing\smmap\smode\son\sWin32,\suse\sa\sread-only\smapping\sby\sdefault.\sWrite\sto\sthe\sdatabase\sfile\susing\sWriteFile().\sUnless\sSQLITE_MMAP_READWRITE\sis\sdefined,\sin\swhich\scase\suse\sa\sread/write\smapping\sand\swrite\sinto\sthe\sfile\susing\smemcpy().
+D 2015-11-17T21:42:32.347
 F Makefile.in d828db6afa6c1fa060d01e33e4674408df1942a1
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc e928e68168df69b353300ac87c10105206653a03
@@ -324,7 +324,7 @@ F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf
 F src/os_common.h abdb9a191a367793268fe553d25bab894e986a0e
 F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
 F src/os_unix.c eb24e0340fbe3cfd0eabfb15a71476953e54fa73
-F src/os_win.c 1716291e5ec2dbfc5a1fe0b32182030f1f7d8acf
+F src/os_win.c 2d77dab5c555a18c0aff379c6a692fc3499044d9
 F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
 F src/pager.c 18341e2b759b447cbc82fb9215d08d9c5864e92e
 F src/pager.h 87c4118a71ba3965184148b379a6d93179071091
@@ -1403,7 +1403,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P dc2ac024d31a898bbc3e7fc824d806e63e993234
-R 84fe0eec79106a76020c4d6d9eb9fda8
-U dan
-Z e25a64e1e3c268c6ee1a9c7b42e3911f
+P 67c5d3c646c8198c8637069140aca952b802df25
+R d582abf646ba97a05dcf7955b3e63a88
+U mistachkin
+Z 3d22a16f35aefddddac7e9c38e41c6d4
index e65363fd1217a232bd5dab3113475fbfae658b87..f18cecb1739690dad3913ab949fb15472887597a 100644 (file)
@@ -1 +1 @@
-67c5d3c646c8198c8637069140aca952b802df25
\ No newline at end of file
+4f521b5bb36a1117db324e92dcf80abd2f1a5bc1
\ No newline at end of file
index 251107528b9b1f19ec770953711d1652836cf842..9ae40e22af068c63f2771c0a52e3b87ed04cfa6f 100644 (file)
@@ -2602,7 +2602,7 @@ static int winWrite(
            "offset=%lld, lock=%d\n", osGetCurrentProcessId(), pFile,
            pFile->h, pBuf, amt, offset, pFile->locktype));
 
-#if SQLITE_MAX_MMAP_SIZE>0
+#if defined(SQLITE_MMAP_READWRITE) && SQLITE_MAX_MMAP_SIZE>0
   /* Deal with as much of this write request as possible by transfering
   ** data from the memory mapping using memcpy().  */
   if( offset<pFile->mmapSize ){
@@ -4096,10 +4096,12 @@ static int winMapfile(winFile *pFd, sqlite3_int64 nByte){
     DWORD flags = FILE_MAP_READ;
 
     winUnmapfile(pFd);
+#ifdef SQLITE_MMAP_READWRITE
     if( (pFd->ctrlFlags & WINFILE_RDONLY)==0 ){
       protect = PAGE_READWRITE;
       flags |= FILE_MAP_WRITE;
     }
+#endif
 #if SQLITE_OS_WINRT
     pFd->hMap = osCreateFileMappingFromApp(pFd->h, NULL, protect, nMap, NULL);
 #elif defined(SQLITE_WIN32_HAS_WIDE)