]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix comment inside the pager_unlock() routine. Always close the master
authordrh <drh@noemail.net>
Mon, 21 Jun 2010 20:19:25 +0000 (20:19 +0000)
committerdrh <drh@noemail.net>
Mon, 21 Jun 2010 20:19:25 +0000 (20:19 +0000)
journal file before trying to delete it.

FossilOrigin-Name: f820b815c9bff368eb1ccb850966a812151e610e

manifest
manifest.uuid
src/pager.c

index 5a161b0e4dc607a1136646dd1b6017b0de06a657..35ea94d7f42a19e6b9352ed5426a580833fc526b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,8 @@
-C Add\stest\scases\sto\spager1.test\sand\spager2.test.
-D 2010-06-21T18:29:41
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+C Fix\scomment\sinside\sthe\spager_unlock()\sroutine.\s\sAlways\sclose\sthe\smaster\njournal\sfile\sbefore\strying\sto\sdelete\sit.
+D 2010-06-21T20:19:25
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in a5cad1f8f3e021356bfcc6c77dc16f6f1952bbc3
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -156,7 +159,7 @@ F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
 F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19
 F src/os_unix.c 5231a75a3799872b1250bc70c0e6a1a5960bc865
 F src/os_win.c 73608839342de32280cb378d3c2fc85a5dd80bd2
-F src/pager.c 9f138b79b47090c1e31efe3d9ea191cc92981643
+F src/pager.c 50659082fb56c0cda9e8902b998786b6ea5403c4
 F src/pager.h ca1f23c0cf137ac26f8908df2427c8b308361efd
 F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
 F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
@@ -825,7 +828,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P ee0acef1faffd480fd2136f81fb2b6f6a17b5388
-R 998ebf709f9a701de3ca0479eb0006bb
-U dan
-Z 7d285ff240ba302f82034a80af5fa58d
+P cc9ddae6d72b214f52b8949e644b91f4ab340a28
+R c5ccd1948c0c334bd6a1ed7f02abbdee
+U drh
+Z 8f5880ea853084ff86e604f4db1b6c3e
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.6 (GNU/Linux)
+
+iD8DBQFMH8lQoxKgR168RlERApKRAJ9SPWJEFbmQKR6sihCEP+Zoix7qTwCfZKqE
+6//AcgL4bQctlb6kAqmxWFE=
+=6D6c
+-----END PGP SIGNATURE-----
index 6545457b191f29e585f2dbbe7aadc2f119b320d7..8654ef3090815b4abd389b205654929726b11c2e 100644 (file)
@@ -1 +1 @@
-cc9ddae6d72b214f52b8949e644b91f4ab340a28
\ No newline at end of file
+f820b815c9bff368eb1ccb850966a812151e610e
\ No newline at end of file
index a5377d4c3ada4fa0ece9e5f1e858e4679b2f68b0..a023857479a16c5ffdd08130526a211209e4f1b8 100644 (file)
@@ -1221,9 +1221,10 @@ static void pager_unlock(Pager *pPager){
     int rc = SQLITE_OK;          /* Return code */
     int iDc = isOpen(pPager->fd)?sqlite3OsDeviceCharacteristics(pPager->fd):0;
 
-    /* Always close the journal file when dropping the database lock.
-    ** Otherwise, another connection with journal_mode=delete might
-    ** delete the file out from under us.
+    /* If the operating system support deletion of open files, then
+    ** close the journal file when dropping the database lock.  Otherwise
+    ** another connection with journal_mode=delete might delete the file
+    ** out from under us.
     */
     assert( (PAGER_JOURNALMODE_MEMORY   & 5)!=1 );
     assert( (PAGER_JOURNALMODE_OFF      & 5)!=1 );
@@ -1864,7 +1865,8 @@ static int pager_delmaster(Pager *pPager, const char *zMaster){
       zJournal += (sqlite3Strlen30(zJournal)+1);
     }
   }
-  
+  sqlite3OsClose(pMaster);
   rc = sqlite3OsDelete(pVfs, zMaster, 0);
 
 delmaster_out:
@@ -1874,8 +1876,8 @@ delmaster_out:
   if( pMaster ){
     sqlite3OsClose(pMaster);
     assert( !isOpen(pJournal) );
+    sqlite3_free(pMaster);
   }
-  sqlite3_free(pMaster);
   return rc;
 }