aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordanielk1977 <danielk1977@noemail.net>2006-01-23 05:50:58 +0000
committerdanielk1977 <danielk1977@noemail.net>2006-01-23 05:50:58 +0000
commit4b202ae2a5b65ed12ef436b10e5fd3eaaa4252fb (patch)
tree3fcf79f63a79bececd4db7bb84d7eb3a66960c75 /src/expr.c
parent6dc1d95dd8d0510fedc89fb4c74ddb9f698ada12 (diff)
downloadsqlite-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.c17
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;