SQLite

Check-in [8820408597]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Use an unsigned integer to count free pages in btree.c:freePage2().
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 8820408597341344b308277ce6ef41b47c7514d6c613520789b05ee52cbedae8
User & Date: drh 2019-04-09 01:26:31.828
Context
2019-04-09
21:32
Improved reporting of SQLITE_TOOBIG errors while parsing. (check-in: ea2d4b65e2 user: drh tags: trunk)
20:50
Fix a problem caused by a small SQLITE_LIMIT_LENGTH value and a CREATE TABLE with a very large name. (Closed-Leaf check-in: 9b5d408864 user: dan tags: toobig-fix)
01:26
Use an unsigned integer to count free pages in btree.c:freePage2(). (check-in: 8820408597 user: drh tags: trunk)
2019-04-07
18:21
Make the testcase() macro added in the previous check-in reachable for testing. (check-in: 80704a16f6 user: drh tags: trunk)
Changes
Side-by-Side Diff Show Whitespace Changes Patch
Changes to src/btree.c.
6166
6167
6168
6169
6170
6171
6172
6173

6174
6175
6176
6177
6178
6179
6180
6166
6167
6168
6169
6170
6171
6172

6173
6174
6175
6176
6177
6178
6179
6180







-
+







*/
static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){
  MemPage *pTrunk = 0;                /* Free-list trunk page */
  Pgno iTrunk = 0;                    /* Page number of free-list trunk page */ 
  MemPage *pPage1 = pBt->pPage1;      /* Local reference to page 1 */
  MemPage *pPage;                     /* Page being freed. May be NULL. */
  int rc;                             /* Return Code */
  int nFree;                          /* Initial number of pages on free-list */
  u32 nFree;                          /* Initial number of pages on free-list */

  assert( sqlite3_mutex_held(pBt->mutex) );
  assert( CORRUPT_DB || iPage>1 );
  assert( !pMemPage || pMemPage->pgno==iPage );

  if( iPage<2 || iPage>pBt->nPage ){
    return SQLITE_CORRUPT_BKPT;