diff options
author | drh <drh@noemail.net> | 2020-08-15 23:48:22 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2020-08-15 23:48:22 +0000 |
commit | 45d827cb6aaf9c2ac4392a4781ca7010be1f69d2 (patch) | |
tree | 0cd2dce39c77a82b572c08ee42238e8733dddd85 /src | |
parent | 289a0c849b7d0a2242089d4a06cfb5a16284a40d (diff) | |
download | sqlite-45d827cb6aaf9c2ac4392a4781ca7010be1f69d2.tar.gz sqlite-45d827cb6aaf9c2ac4392a4781ca7010be1f69d2.zip |
Optimization of the sqlite3SrcListDelete() routine.
FossilOrigin-Name: 1b4acd1ac4a8d24f8804c6d0770f5b0022f569d51742b6954b26e525f04d38ca
Diffstat (limited to 'src')
-rw-r--r-- | src/build.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/build.c b/src/build.c index a9ae0e008..2b6342ba9 100644 --- a/src/build.c +++ b/src/build.c @@ -4464,15 +4464,15 @@ void sqlite3SrcListDelete(sqlite3 *db, SrcList *pList){ struct SrcList_item *pItem; if( pList==0 ) return; for(pItem=pList->a, i=0; i<pList->nSrc; i++, pItem++){ - sqlite3DbFree(db, pItem->zDatabase); + if( pItem->zDatabase ) sqlite3DbFreeNN(db, pItem->zDatabase); sqlite3DbFree(db, pItem->zName); - sqlite3DbFree(db, pItem->zAlias); + if( pItem->zAlias ) sqlite3DbFreeNN(db, pItem->zAlias); if( pItem->fg.isIndexedBy ) sqlite3DbFree(db, pItem->u1.zIndexedBy); if( pItem->fg.isTabFunc ) sqlite3ExprListDelete(db, pItem->u1.pFuncArg); sqlite3DeleteTable(db, pItem->pTab); - sqlite3SelectDelete(db, pItem->pSelect); - sqlite3ExprDelete(db, pItem->pOn); - sqlite3IdListDelete(db, pItem->pUsing); + if( pItem->pSelect ) sqlite3SelectDelete(db, pItem->pSelect); + if( pItem->pOn ) sqlite3ExprDelete(db, pItem->pOn); + if( pItem->pUsing ) sqlite3IdListDelete(db, pItem->pUsing); } sqlite3DbFreeNN(db, pList); } |