From: drh Date: Tue, 26 Sep 2006 00:34:17 +0000 (+0000) Subject: Performance improvement and bug fix in sqlite3WinDelete(). (CVS 3445) X-Git-Tag: version-3.6.10~2722 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50c2b35ea752532fdb3f389264c69aff93f876cc;p=thirdparty%2Fsqlite.git Performance improvement and bug fix in sqlite3WinDelete(). (CVS 3445) FossilOrigin-Name: 46ac1ac2d10cf2f1ebfb8dd4bb9a2ccffd85e816 --- diff --git a/manifest b/manifest index e4823e8401..06fc90e835 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C CVS\smalfunctioned\son\sthe\sprevious\scheck-in.\s\sMake\ssure\sthe\srevision\sto\ndate.c\swas\sreceived.\s\sTicket\s#1991.\s(CVS\s3444) -D 2006-09-25T18:05:04 +C Performance\simprovement\sand\sbug\sfix\sin\ssqlite3WinDelete().\s(CVS\s3445) +D 2006-09-26T00:34:18 F Makefile.in cabd42d34340f49260bc2a7668c38eba8d4cfd99 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -74,7 +74,7 @@ F src/os_test.c 49833426101f99aee4bb5f6a44b7c4b2029fda1c F src/os_test.h 903c93554c23d88f34f667f1979e4a1cee792af3 F src/os_unix.c 3ed7fd1639c052d1df167321917a39ba738c46c9 F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e -F src/os_win.c a66763099e093785bee7e8cff3baef01868b2e73 +F src/os_win.c 6c9da4c76186999f3a709f00e5be3162bd0482eb F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b F src/pager.c 0f966f7fa225c377da2021fbbfdd50a48d877000 F src/pager.h 0cff9de5e9019cb695a04d18df8caaaff933a272 @@ -399,7 +399,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 -P 51b9c755ea01528e32690aabe91236ed917369f1 -R 16a54898bdd88e4f2298e9240a32bfda +P 433dac1f2924d00282ef952668b21a9c023c93cb +R adfaafd21ebd33f9c19d737c37fb9013 U drh -Z 8d1c7066ea960a79af02d14d93066c8a +Z 34da4a23531e2f2bbe863c8e85206ba7 diff --git a/manifest.uuid b/manifest.uuid index 555b203a9e..18e720deca 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -433dac1f2924d00282ef952668b21a9c023c93cb \ No newline at end of file +46ac1ac2d10cf2f1ebfb8dd4bb9a2ccffd85e816 \ No newline at end of file diff --git a/src/os_win.c b/src/os_win.c index aab936e1c5..f96698254e 100644 --- a/src/os_win.c +++ b/src/os_win.c @@ -495,7 +495,8 @@ int sqlite3WinDelete(const char *zFilename){ if( zWide ){ do{ rc = DeleteFileW(zWide); - }while( rc==0 && cnt++ < MX_DELETION_ATTEMPTS && (Sleep(100), 1) ); + }while( rc==0 && GetFileAttributesW(zWide)!=0xffffffff + && cnt++ < MX_DELETION_ATTEMPTS && (Sleep(100), 1) ); sqliteFree(zWide); }else{ #if OS_WINCE @@ -503,11 +504,12 @@ int sqlite3WinDelete(const char *zFilename){ #else do{ rc = DeleteFileA(zFilename); - }while( rc==0 && cnt++ < MX_DELETION_ATTEMPTS && (Sleep(100), 1) ); + }while( rc==0 && GetFileAttributesA(zFilename) + && cnt++ < MX_DELETION_ATTEMPTS && (Sleep(100), 1) ); #endif } TRACE2("DELETE \"%s\"\n", zFilename); - return rc==0 ? SQLITE_OK : SQLITE_IOERR; + return rc!=0 ? SQLITE_OK : SQLITE_IOERR; } /*