diff options
author | danielk1977 <danielk1977@noemail.net> | 2006-01-23 05:50:58 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2006-01-23 05:50:58 +0000 |
commit | 4b202ae2a5b65ed12ef436b10e5fd3eaaa4252fb (patch) | |
tree | 3fcf79f63a79bececd4db7bb84d7eb3a66960c75 /src/expr.c | |
parent | 6dc1d95dd8d0510fedc89fb4c74ddb9f698ada12 (diff) | |
download | sqlite-4b202ae2a5b65ed12ef436b10e5fd3eaaa4252fb.tar.gz sqlite-4b202ae2a5b65ed12ef436b10e5fd3eaaa4252fb.zip |
Improve coverage of expr.c and btree.c slightly. (CVS 2992)
FossilOrigin-Name: cc2e8e87cfd474b4dc6833ee0c38e2cd2dd3a494
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/expr.c b/src/expr.c index 724cee9f1..169fdf942 100644 --- a/src/expr.c +++ b/src/expr.c @@ -12,7 +12,7 @@ ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** -** $Id: expr.c,v 1.250 2006/01/18 16:51:35 danielk1977 Exp $ +** $Id: expr.c,v 1.251 2006/01/23 05:50:58 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> @@ -280,6 +280,7 @@ void sqlite3ExprSpan(Expr *pExpr, Token *pLeft, Token *pRight){ */ Expr *sqlite3ExprFunction(ExprList *pList, Token *pToken){ Expr *pNew; + assert( pToken ); pNew = sqliteMalloc( sizeof(Expr) ); if( pNew==0 ){ sqlite3ExprListDelete(pList); /* Avoid leaking memory when malloc fails */ @@ -287,12 +288,8 @@ Expr *sqlite3ExprFunction(ExprList *pList, Token *pToken){ } pNew->op = TK_FUNCTION; pNew->pList = pList; - if( pToken ){ - assert( pToken->dyn==0 ); - pNew->token = *pToken; - }else{ - pNew->token.z = 0; - } + assert( pToken->dyn==0 ); + pNew->token = *pToken; pNew->span = pNew->token; return pNew; } @@ -2085,10 +2082,8 @@ void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int jumpIfNull){ */ int sqlite3ExprCompare(Expr *pA, Expr *pB){ int i; - if( pA==0 ){ - return pB==0; - }else if( pB==0 ){ - return 0; + if( pA==0||pB==0 ){ + return pB==pA; } if( pA->op!=pB->op ) return 0; if( (pA->flags & EP_Distinct)!=(pB->flags & EP_Distinct) ) return 0; |