diff options
author | drh <drh@noemail.net> | 2020-05-27 12:44:28 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2020-05-27 12:44:28 +0000 |
commit | b639a2094a39d2e02acb4dbc912d9f3ebd988d09 (patch) | |
tree | 7693feee80370ac663d573ba745be45fe7eb28cc /src/expr.c | |
parent | 399062cccbb0d14ab16e175a565e2efc1b1d0c8f (diff) | |
download | sqlite-b639a2094a39d2e02acb4dbc912d9f3ebd988d09.tar.gz sqlite-b639a2094a39d2e02acb4dbc912d9f3ebd988d09.zip |
Small performance improvement and size reduction in the expression
code generator.
FossilOrigin-Name: eeb53e219551d8a05a87f1de9a7cd9af295d08a296f1f435a8509ea1252ccdcc
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/expr.c b/src/expr.c index 663c15e49..496177a5c 100644 --- a/src/expr.c +++ b/src/expr.c @@ -3797,10 +3797,7 @@ int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target){ int p5 = 0; assert( target>0 && target<=pParse->nMem ); - if( v==0 ){ - assert( pParse->db->mallocFailed ); - return 0; - } + assert( v!=0 ); expr_code_doover: if( pExpr==0 ){ @@ -4630,9 +4627,10 @@ void sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){ assert( pExpr==0 || !ExprHasVVAProperty(pExpr,EP_Immutable) ); assert( target>0 && target<=pParse->nMem ); - inReg = sqlite3ExprCodeTarget(pParse, pExpr, target); assert( pParse->pVdbe!=0 || pParse->db->mallocFailed ); - if( inReg!=target && pParse->pVdbe ){ + if( pParse->pVdbe==0 ) return; + inReg = sqlite3ExprCodeTarget(pParse, pExpr, target); + if( inReg!=target ){ u8 op; if( ExprHasProperty(pExpr,EP_Subquery) ){ op = OP_Copy; |