aboutsummaryrefslogtreecommitdiff
path: root/src/callback.c
diff options
context:
space:
mode:
authordrh <>2022-08-22 02:00:26 +0000
committerdrh <>2022-08-22 02:00:26 +0000
commit41ce47c4f4bcae3882fdccec18a6100a85f4bba5 (patch)
treec756e648b83220679d2e330445822f0b5c25bce3 /src/callback.c
parent05cb948bf782cbcbd8e8ecffdddcd2fe807f5d08 (diff)
downloadsqlite-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.c6
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);