diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vdbeapi.c | 6 | ||||
-rw-r--r-- | src/vdbeaux.c | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/vdbeapi.c b/src/vdbeapi.c index bdc5f0320..3e439e3e8 100644 --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@ -1303,8 +1303,10 @@ static int bindText( if( rc==SQLITE_OK && encoding!=0 ){ rc = sqlite3VdbeChangeEncoding(pVar, ENC(p->db)); } - sqlite3Error(p->db, rc); - rc = sqlite3ApiExit(p->db, rc); + if( rc ){ + sqlite3Error(p->db, rc); + rc = sqlite3ApiExit(p->db, rc); + } } sqlite3_mutex_leave(p->db->mutex); }else if( xDel!=SQLITE_STATIC && xDel!=SQLITE_TRANSIENT ){ diff --git a/src/vdbeaux.c b/src/vdbeaux.c index be1c128c6..1961fba51 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -2820,10 +2820,10 @@ int sqlite3VdbeTransferError(Vdbe *p){ sqlite3ValueSetStr(db->pErr, -1, p->zErrMsg, SQLITE_UTF8, SQLITE_TRANSIENT); sqlite3EndBenignMalloc(); db->bBenignMalloc--; - db->errCode = rc; - }else{ - sqlite3Error(db, rc); + }else if( db->pErr ){ + sqlite3ValueSetNull(db->pErr); } + db->errCode = rc; return rc; } |