diff options
author | dan <dan@noemail.net> | 2009-11-23 14:39:14 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2009-11-23 14:39:14 +0000 |
commit | f6963f99dddf443a25e3e755e480749a89e9344b (patch) | |
tree | 637aece725a0993527411cdcf1876821ebf117f6 /src/expr.c | |
parent | fc7e7c7c846f5962fb443074bed865dd42440dae (diff) | |
download | sqlite-f6963f99dddf443a25e3e755e480749a89e9344b.tar.gz sqlite-f6963f99dddf443a25e3e755e480749a89e9344b.zip |
Change so that deleting an Expr structure requires only one frame per level in the expression tree, not two.
FossilOrigin-Name: a4380ab326e4b0de29271c824d041193e86b7139
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/expr.c b/src/expr.c index 5254cd715..aee2b7409 100644 --- a/src/expr.c +++ b/src/expr.c @@ -627,11 +627,10 @@ void sqlite3ExprAssignVarNumber(Parse *pParse, Expr *pExpr){ } /* -** Clear an expression structure without deleting the structure itself. -** Substructure is deleted. +** Recursively delete an expression tree. */ -void sqlite3ExprClear(sqlite3 *db, Expr *p){ - assert( p!=0 ); +void sqlite3ExprDelete(sqlite3 *db, Expr *p){ + if( p==0 ) return; if( !ExprHasAnyProperty(p, EP_TokenOnly) ){ sqlite3ExprDelete(db, p->pLeft); sqlite3ExprDelete(db, p->pRight); @@ -644,14 +643,6 @@ void sqlite3ExprClear(sqlite3 *db, Expr *p){ sqlite3ExprListDelete(db, p->x.pList); } } -} - -/* -** Recursively delete an expression tree. -*/ -void sqlite3ExprDelete(sqlite3 *db, Expr *p){ - if( p==0 ) return; - sqlite3ExprClear(db, p); if( !ExprHasProperty(p, EP_Static) ){ sqlite3DbFree(db, p); } |