aboutsummaryrefslogtreecommitdiff
path: root/src/wal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wal.c')
-rw-r--r--src/wal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/wal.c b/src/wal.c
index 0eb525f41..4bbf7960c 100644
--- a/src/wal.c
+++ b/src/wal.c
@@ -399,6 +399,7 @@ static int walIndexMap(Wal *pWal, int reqSize){
assert( pWal->szWIndex==0 );
pWal->pWiData = &pWal->iCallback;
}
+ assert( rc==SQLITE_OK || pWal->pWiData==0 );
}
return rc;
}
@@ -1117,12 +1118,13 @@ int sqlite3WalWriteLock(Wal *pWal, int op){
*/
int sqlite3WalUndo(Wal *pWal, int (*xUndo)(void *, Pgno), void *pUndoCtx){
int unused;
- int rc = SQLITE_OK;
+ int rc;
Pgno iMax = pWal->hdr.iLastPg;
Pgno iFrame;
+ assert( pWal->pWiData==0 );
rc = walIndexReadHdr(pWal, &unused);
- for(iFrame=pWal->hdr.iLastPg+1; iFrame<=iMax && rc==SQLITE_OK; iFrame++){
+ for(iFrame=pWal->hdr.iLastPg+1; rc==SQLITE_OK && iFrame<=iMax; iFrame++){
assert( pWal->lockState==SQLITE_SHM_WRITE );
rc = xUndo(pUndoCtx, pWal->pWiData[walIndexEntry(iFrame)]);
}