diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backup.c | 2 | ||||
-rw-r--r-- | src/btree.c | 2 | ||||
-rw-r--r-- | src/build.c | 1 | ||||
-rw-r--r-- | src/fkey.c | 1 | ||||
-rw-r--r-- | src/parse.y | 1 | ||||
-rw-r--r-- | src/pcache.c | 1 | ||||
-rw-r--r-- | src/pcache1.c | 1 | ||||
-rw-r--r-- | src/select.c | 1 | ||||
-rw-r--r-- | src/trigger.c | 1 | ||||
-rw-r--r-- | src/vdbeaux.c | 3 | ||||
-rw-r--r-- | src/vdbesort.c | 7 | ||||
-rw-r--r-- | src/wal.c | 2 | ||||
-rw-r--r-- | src/where.c | 1 | ||||
-rw-r--r-- | src/window.c | 7 |
14 files changed, 28 insertions, 3 deletions
diff --git a/src/backup.c b/src/backup.c index 2090b4978..5e9c974ae 100644 --- a/src/backup.c +++ b/src/backup.c @@ -619,8 +619,10 @@ int sqlite3_backup_finish(sqlite3_backup *p){ } if( p->isAttached ){ pp = sqlite3PagerBackupPtr(sqlite3BtreePager(p->pSrc)); + assert( pp!=0 ); while( *pp!=p ){ pp = &(*pp)->pNext; + assert( pp!=0 ); } *pp = p->pNext; } diff --git a/src/btree.c b/src/btree.c index 5f82f1cc0..db3b27923 100644 --- a/src/btree.c +++ b/src/btree.c @@ -7962,6 +7962,8 @@ static int balance_nonroot( )); assert( sqlite3PagerIswriteable(pParent->pDbPage) ); + assert( nNew>=1 && nNew<=ArraySize(apNew) ); + assert( apNew[nNew-1]!=0 ); put4byte(pRight, apNew[nNew-1]->pgno); /* If the sibling pages are not leaves, ensure that the right-child pointer diff --git a/src/build.c b/src/build.c index 53314593b..aa5a6f6a1 100644 --- a/src/build.c +++ b/src/build.c @@ -3629,6 +3629,7 @@ void sqlite3CreateIndex( /* Gather the complete text of the CREATE INDEX statement into ** the zStmt variable */ + assert( pName!=0 || pStart==0 ); if( pStart ){ int n = (int)(pParse->sLastToken.z - pName->z) + pParse->sLastToken.n; if( pName->z[n-1]==';' ) n--; diff --git a/src/fkey.c b/src/fkey.c index 14ee983c5..67da6e6c7 100644 --- a/src/fkey.c +++ b/src/fkey.c @@ -1332,6 +1332,7 @@ static Trigger *fkActionTrigger( return 0; } assert( pStep!=0 ); + assert( pTrigger!=0 ); switch( action ){ case OE_Restrict: diff --git a/src/parse.y b/src/parse.y index fce4c00cd..f5727ade2 100644 --- a/src/parse.y +++ b/src/parse.y @@ -458,6 +458,7 @@ cmd ::= select(X). { ** SQLITE_LIMIT_COMPOUND_SELECT. */ static void parserDoubleLinkSelect(Parse *pParse, Select *p){ + assert( p!=0 ); if( p->pPrior ){ Select *pNext = 0, *pLoop; int mxSelect, cnt = 0; diff --git a/src/pcache.c b/src/pcache.c index 9125d5de3..36829be41 100644 --- a/src/pcache.c +++ b/src/pcache.c @@ -262,6 +262,7 @@ int sqlite3PcacheInitialize(void){ ** built-in default page cache is used instead of the application defined ** page cache. */ sqlite3PCacheSetDefault(); + assert( sqlite3GlobalConfig.pcache2.xInit!=0 ); } return sqlite3GlobalConfig.pcache2.xInit(sqlite3GlobalConfig.pcache2.pArg); } diff --git a/src/pcache1.c b/src/pcache1.c index c9d55866e..d0051433d 100644 --- a/src/pcache1.c +++ b/src/pcache1.c @@ -424,6 +424,7 @@ static PgHdr1 *pcache1AllocPage(PCache1 *pCache, int benignMalloc){ assert( sqlite3_mutex_held(pCache->pGroup->mutex) ); if( pCache->pFree || (pCache->nPage==0 && pcache1InitBulk(pCache)) ){ + assert( pCache->pFree!=0 ); p = pCache->pFree; pCache->pFree = p->pNext; p->pNext = 0; diff --git a/src/select.c b/src/select.c index dc388b1f7..397037b17 100644 --- a/src/select.c +++ b/src/select.c @@ -3949,6 +3949,7 @@ static int flattenSubquery( for(pParent=p; pParent; pParent=pParent->pPrior, pSub=pSub->pPrior){ int nSubSrc; u8 jointype = 0; + assert( pSub!=0 ); pSubSrc = pSub->pSrc; /* FROM clause of subquery */ nSubSrc = pSubSrc->nSrc; /* Number of terms in subquery FROM clause */ pSrc = pParent->pSrc; /* FROM clause of the outer query */ diff --git a/src/trigger.c b/src/trigger.c index c37f76da7..638d53dac 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -340,6 +340,7 @@ void sqlite3FinishTrigger( Trigger *pLink = pTrig; Hash *pHash = &db->aDb[iDb].pSchema->trigHash; assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); + assert( pLink!=0 ); pTrig = sqlite3HashInsert(pHash, zName, pTrig); if( pTrig ){ sqlite3OomFault(db); diff --git a/src/vdbeaux.c b/src/vdbeaux.c index 5781d8f21..4417cc63a 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -1907,8 +1907,11 @@ int sqlite3VdbeList( ** pick up the appropriate opcode. */ int j; i -= p->nOp; + assert( apSub!=0 ); + assert( nSub>0 ); for(j=0; i>=apSub[j]->nOp; j++){ i -= apSub[j]->nOp; + assert( i<apSub[j]->nOp || j+1<nSub ); } pOp = &apSub[j]->aOp[i]; } diff --git a/src/vdbesort.c b/src/vdbesort.c index f909f812d..05590da7e 100644 --- a/src/vdbesort.c +++ b/src/vdbesort.c @@ -1728,13 +1728,16 @@ static int vdbeSorterFlushPMA(VdbeSorter *pSorter){ rc = vdbeSorterListToPMA(&pSorter->aTask[nWorker], &pSorter->list); }else{ /* Launch a background thread for this operation */ - u8 *aMem = pTask->list.aMemory; - void *pCtx = (void*)pTask; + u8 *aMem; + void *pCtx; + assert( pTask!=0 ); assert( pTask->pThread==0 && pTask->bDone==0 ); assert( pTask->list.pList==0 ); assert( pTask->list.aMemory==0 || pSorter->list.aMemory!=0 ); + aMem = pTask->list.aMemory; + pCtx = (void*)pTask; pSorter->iPrev = (u8)(pTask - pSorter->aTask); pTask->list = pSorter->list; pSorter->list.pList = 0; @@ -3478,6 +3478,7 @@ int sqlite3WalFrames( if( rc ) return rc; iOffset += szFrame; nExtra++; + assert( pLast!=0 ); } } if( bSync ){ @@ -3510,6 +3511,7 @@ int sqlite3WalFrames( iFrame++; rc = walIndexAppend(pWal, iFrame, p->pgno); } + assert( pLast!=0 || nExtra==0 ); while( rc==SQLITE_OK && nExtra>0 ){ iFrame++; nExtra--; diff --git a/src/where.c b/src/where.c index f2ab125d2..f83f285b9 100644 --- a/src/where.c +++ b/src/where.c @@ -2270,6 +2270,7 @@ static void whereLoopOutputAdjust( assert( (pLoop->wsFlags & WHERE_AUTO_INDEX)==0 ); for(i=pWC->nTerm, pTerm=pWC->a; i>0; i--, pTerm++){ + assert( pTerm!=0 ); if( (pTerm->wtFlags & TERM_VIRTUAL)!=0 ) break; if( (pTerm->prereqAll & pLoop->maskSelf)==0 ) continue; if( (pTerm->prereqAll & notAllowed)!=0 ) continue; diff --git a/src/window.c b/src/window.c index ed39107b9..ff05aefb5 100644 --- a/src/window.c +++ b/src/window.c @@ -748,6 +748,8 @@ struct WindowRewrite { static int selectWindowRewriteExprCb(Walker *pWalker, Expr *pExpr){ struct WindowRewrite *p = pWalker->u.pRewrite; Parse *pParse = pWalker->pParse; + assert( p!=0 ); + assert( p->pWin!=0 ); /* If this function is being called from within a scalar sub-select ** that used by the SELECT statement being processed, only process @@ -847,6 +849,7 @@ static void selectWindowRewriteEList( Walker sWalker; WindowRewrite sRewrite; + assert( pWin!=0 ); memset(&sWalker, 0, sizeof(Walker)); memset(&sRewrite, 0, sizeof(WindowRewrite)); @@ -1567,8 +1570,10 @@ static void windowFullScan(WindowCodeArg *p){ int lblNext; int lblBrk; int addrNext; - int csr = pMWin->csrApp; + int csr; + assert( pMWin!=0 ); + csr = pMWin->csrApp; nPeer = (pMWin->pOrderBy ? pMWin->pOrderBy->nExpr : 0); lblNext = sqlite3VdbeMakeLabel(pParse); |