aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2021-02-04 13:44:42 +0000
committerdrh <>2021-02-04 13:44:42 +0000
commit02c4aa39e7c731e3ff9cec3bb456f006ba8af7fa (patch)
tree5812a82c1e73c647d7625dd9c89471400438278f /src
parent8c333cfc0d9076223a8156380820d702947b80fc (diff)
downloadsqlite-02c4aa39e7c731e3ff9cec3bb456f006ba8af7fa.tar.gz
sqlite-02c4aa39e7c731e3ff9cec3bb456f006ba8af7fa.zip
Performance optimization in sqlite3FinishCoding().
FossilOrigin-Name: 0f34f241d37cc4f31dc657a6fc33815fa5e24298487121cb27c29118524b8ee7
Diffstat (limited to 'src')
-rw-r--r--src/build.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/build.c b/src/build.c
index 25f61e815..d59282779 100644
--- a/src/build.c
+++ b/src/build.c
@@ -143,11 +143,15 @@ void sqlite3FinishCoding(Parse *pParse){
/* Begin by generating some termination code at the end of the
** vdbe program
*/
- if( pParse->pVdbe==0 && db->init.busy ){
- pParse->rc = SQLITE_DONE;
- return;
+ v = pParse->pVdbe;
+ if( v==0 ){
+ if( db->init.busy ){
+ pParse->rc = SQLITE_DONE;
+ return;
+ }
+ v = sqlite3GetVdbe(pParse);
+ if( v==0 ) pParse->rc = SQLITE_ERROR;
}
- v = sqlite3GetVdbe(pParse);
assert( !pParse->isMultiWrite
|| sqlite3VdbeAssertMayAbort(v, pParse->mayAbort));
if( v ){
@@ -233,7 +237,6 @@ void sqlite3FinishCoding(Parse *pParse){
}
}
-
/* Get the VDBE program ready for execution
*/
if( v && pParse->nErr==0 && !db->mallocFailed ){