Compare commits

...

1 Commits

Author SHA1 Message Date
drh 7056a4715c Avoid unnecessary memset() operations in sqlite3PagerGet().
FossilOrigin-Name: 0c97b80240b38d60236cd8e1e51954b20f147eed
2016-04-05 00:44:01 +00:00
5 changed files with 21 additions and 13 deletions
+11 -8
View File
@@ -1,5 +1,5 @@
C Fix\sdocumentation\stypos.\s\sComment\schanges\sonly.\s\sNo\schanges\sto\scode.
D 2016-04-04T18:04:56.616
C Avoid\sunnecessary\smemset()\soperations\sin\ssqlite3PagerGet().
D 2016-04-05T00:44:01.809
F Makefile.in e812bb732d7af01baa09f1278bd4f4a2e3a09449
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc fe57d7e3e74fa383fd01ced796c0ffd966fc094a
@@ -316,7 +316,7 @@ F src/alter.c 1bb0709b3048e24217b80ec6bd78a3e99a47c01b
F src/analyze.c 37fedc80ac966ce1745811746e68e4d8fa64c7fe
F src/attach.c 771153bd1f4ab0b97a44a13dde2c7e5e1efeba22
F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240
F src/backup.c f60f0aa55d25d853ffde53d0b0370a7bb7ee41ce
F src/backup.c dae481a88ceac8c85d02feb9fc13f11bea10f24d
F src/bitvec.c 3ee4c8b2c94ed3a7377256e18199e6ff5cf33f63
F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73
F src/btree.c 577fb5674e2f0aa0a38246afc19e1885a0b8c9b0
@@ -362,8 +362,8 @@ F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
F src/os_unix.c b1ccb273771f41dbdbe0ba7c1ad63c38ad5972ec
F src/os_win.c b3ba9573d8d893e70a6a8015bbee572ecf7ffbef
F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
F src/pager.c 38718a019ca762ba4f6795425d5a54db70d1790d
F src/pager.h e1d38a2f14849e219df0f91f8323504d134c8a56
F src/pager.c b0abe7268c7efc25e3b329cd1d55923d3bdf0705
F src/pager.h 97f153d13cb1bc64a2de364b7f0dd051bed3826b
F src/parse.y 5ea8c81c5c41b27887f41b4a7e1c58470d7d3821
F src/pcache.c 647bb53a86b7bbcf55ad88089b3ea5a9170b90df
F src/pcache.h 4d0ccaad264d360981ec5e6a2b596d6e85242545
@@ -1482,7 +1482,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P cefd36ff7b7f142bcebdb16b4d24ae274cdf2709
R febb375a1eed9f049740185e3c47f862
P d5fc2f7f90f8cbd53810c7a445b0e9c9a0e39182
R c1c23067879b7a5d3fdca7f8c951a0ef
T *branch * pager-get-noinit
T *sym-pager-get-noinit *
T -sym-trunk *
U drh
Z 64b7ed851fe55fe722cd357618c3eec9
Z 4a821fc54fdcd1552370cc71dc24d776
+1 -1
View File
@@ -1 +1 @@
d5fc2f7f90f8cbd53810c7a445b0e9c9a0e39182
0c97b80240b38d60236cd8e1e51954b20f147eed
+2 -1
View File
@@ -293,7 +293,8 @@ static int backupOnePage(
DbPage *pDestPg = 0;
Pgno iDest = (Pgno)(iOff/nDestPgsz)+1;
if( iDest==PENDING_BYTE_PAGE(p->pDest->pBt) ) continue;
if( SQLITE_OK==(rc = sqlite3PagerGet(pDestPager, iDest, &pDestPg, 0))
if( SQLITE_OK==(rc = sqlite3PagerGet(pDestPager, iDest, &pDestPg,
PAGER_GET_NOINIT))
&& SQLITE_OK==(rc = sqlite3PagerWrite(pDestPg))
){
const u8 *zIn = &zSrcData[iOff%nSrcPgsz];
+6 -3
View File
@@ -5300,7 +5300,7 @@ int sqlite3PagerGet(
int rc = SQLITE_OK;
PgHdr *pPg = 0;
u32 iFrame = 0; /* Frame to read from WAL file */
const int noContent = (flags & PAGER_GET_NOCONTENT);
#define noContent ((flags & PAGER_GET_NOCONTENT)!=0)
/* It is acceptable to use a read-only (mmap) page for any page except
** page 1 if there is no write-transaction open or the ACQUIRE_READONLY
@@ -5432,8 +5432,10 @@ int sqlite3PagerGet(
testcase( rc==SQLITE_NOMEM );
sqlite3EndBenignMalloc();
}
memset(pPg->pData, 0, pPager->pageSize);
IOTRACE(("ZERO %p %d\n", pPager, pgno));
if( (flags & PAGER_GET_NOINIT)==0 ){
memset(pPg->pData, 0, pPager->pageSize);
IOTRACE(("ZERO %p %d\n", pPager, pgno));
}
}else{
if( pagerUseWal(pPager) && bMmapOk==0 ){
rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iFrame);
@@ -5461,6 +5463,7 @@ pager_acquire_err:
*ppPage = 0;
return rc;
}
#undef noContent
/*
** Acquire a page if it is already in the in-memory cache. Do
+1
View File
@@ -83,6 +83,7 @@ typedef struct PgHdr DbPage;
*/
#define PAGER_GET_NOCONTENT 0x01 /* Do not load data from disk */
#define PAGER_GET_READONLY 0x02 /* Read-only page is acceptable */
#define PAGER_GET_NOINIT 0x04 /* Do not initialize the page */
/*
** Flags for sqlite3PagerSetFlags()