/ Check-in [f653995c]
Login

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

Overview
Comment:Fix a reference count leak introduced by (5526). (CVS 5527)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:f653995c32197cacbcd14ea9e876ba5b2fde94df
User & Date: danielk1977 2008-08-02 17:36:46
Context
2008-08-02
20:09
Test scripts revised to work when auto_vacuum defaults on. (CVS 5528) check-in: e63186b0 user: drh tags: trunk
17:36
Fix a reference count leak introduced by (5526). (CVS 5527) check-in: f653995c user: danielk1977 tags: trunk
17:03
Avoid doing IO purely to check assert() constraints. (CVS 5526) check-in: fb26ae72 user: danielk1977 tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/btree.c.

     5      5   ** a legal notice, here is a blessing:
     6      6   **
     7      7   **    May you do good and not evil.
     8      8   **    May you find forgiveness for yourself and forgive others.
     9      9   **    May you share freely, never taking more than you give.
    10     10   **
    11     11   *************************************************************************
    12         -** $Id: btree.c,v 1.494 2008/08/02 17:03:32 danielk1977 Exp $
           12  +** $Id: btree.c,v 1.495 2008/08/02 17:36:46 danielk1977 Exp $
    13     13   **
    14     14   ** This file implements a external (disk-based) database using BTrees.
    15     15   ** See the header comment on "btreeInt.h" for additional information.
    16     16   ** Including a description of file format and an overview of operation.
    17     17   */
    18     18   #include "btreeInt.h"
    19     19   
................................................................................
  4567   4567       return ptrmapPut(pBt, pgno, PTRMAP_BTREE, pNewParent->pgno);
  4568   4568     }
  4569   4569   
  4570   4570   #ifndef NDEBUG
  4571   4571     /* If the updatePtrmap flag was clear, assert that the entry in the
  4572   4572     ** pointer-map is already correct.
  4573   4573     */
  4574         -  if( ISAUTOVACUUM && sqlite3PagerLookup(pBt->pPager,PTRMAP_PAGENO(pBt,pgno)) ){
  4575         -    u8 eType;
  4576         -    Pgno ii;
  4577         -    int rc;
  4578         -    rc = ptrmapGet(pBt, pgno, &eType, &ii);
  4579         -    assert( rc==SQLITE_OK && ii==pNewParent->pgno && eType==PTRMAP_BTREE );
         4574  +  if( ISAUTOVACUUM ){
         4575  +    pDbPage = sqlite3PagerLookup(pBt->pPager,PTRMAP_PAGENO(pBt,pgno));
         4576  +    if( pDbPage ){
         4577  +      u8 eType;
         4578  +      Pgno ii;
         4579  +      int rc = ptrmapGet(pBt, pgno, &eType, &ii);
         4580  +      assert( rc==SQLITE_OK && ii==pNewParent->pgno && eType==PTRMAP_BTREE );
         4581  +      sqlite3PagerUnref(pDbPage);
         4582  +    }
  4580   4583     }
  4581   4584   #endif
  4582   4585   
  4583   4586     return SQLITE_OK;
  4584   4587   }
  4585   4588   
  4586   4589