aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2020-08-15 23:48:22 +0000
committerdrh <drh@noemail.net>2020-08-15 23:48:22 +0000
commit45d827cb6aaf9c2ac4392a4781ca7010be1f69d2 (patch)
tree0cd2dce39c77a82b572c08ee42238e8733dddd85 /src
parent289a0c849b7d0a2242089d4a06cfb5a16284a40d (diff)
downloadsqlite-45d827cb6aaf9c2ac4392a4781ca7010be1f69d2.tar.gz
sqlite-45d827cb6aaf9c2ac4392a4781ca7010be1f69d2.zip
Optimization of the sqlite3SrcListDelete() routine.
FossilOrigin-Name: 1b4acd1ac4a8d24f8804c6d0770f5b0022f569d51742b6954b26e525f04d38ca
Diffstat (limited to 'src')
-rw-r--r--src/build.c10
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);
}