diff options
author | drh <> | 2022-08-22 02:00:26 +0000 |
---|---|---|
committer | drh <> | 2022-08-22 02:00:26 +0000 |
commit | 41ce47c4f4bcae3882fdccec18a6100a85f4bba5 (patch) | |
tree | c756e648b83220679d2e330445822f0b5c25bce3 /src/callback.c | |
parent | 05cb948bf782cbcbd8e8ecffdddcd2fe807f5d08 (diff) | |
download | sqlite-41ce47c4f4bcae3882fdccec18a6100a85f4bba5.tar.gz sqlite-41ce47c4f4bcae3882fdccec18a6100a85f4bba5.zip |
Add the new internal interface sqlite3DbNNFreeNN(db,ptr) where both the
db and ptr parameters are guaranteed to be non-NULL. Use this where
appropriate to save more than 2 million CPU cycles on the standard
performance test.
FossilOrigin-Name: e5eaa80e81fdf86f2875a912b880272b8d099b82b08e945a7988c5dd0fe9d6b5
Diffstat (limited to 'src/callback.c')
-rw-r--r-- | src/callback.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/callback.c b/src/callback.c index 7d8f9dcbc..6cbe8e584 100644 --- a/src/callback.c +++ b/src/callback.c @@ -490,19 +490,21 @@ void sqlite3SchemaClear(void *p){ Hash temp2; HashElem *pElem; Schema *pSchema = (Schema *)p; + sqlite3 xdb; + memset(&xdb, 0, sizeof(xdb)); temp1 = pSchema->tblHash; temp2 = pSchema->trigHash; sqlite3HashInit(&pSchema->trigHash); sqlite3HashClear(&pSchema->idxHash); for(pElem=sqliteHashFirst(&temp2); pElem; pElem=sqliteHashNext(pElem)){ - sqlite3DeleteTrigger(0, (Trigger*)sqliteHashData(pElem)); + sqlite3DeleteTrigger(&xdb, (Trigger*)sqliteHashData(pElem)); } sqlite3HashClear(&temp2); sqlite3HashInit(&pSchema->tblHash); for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){ Table *pTab = sqliteHashData(pElem); - sqlite3DeleteTable(0, pTab); + sqlite3DeleteTable(&xdb, pTab); } sqlite3HashClear(&temp1); sqlite3HashClear(&pSchema->fkeyHash); |