aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vdbeapi.c6
-rw-r--r--src/vdbeaux.c6
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;
}