From 420158a628c9c23be84487e6ae3d6514bf71004d Mon Sep 17 00:00:00 2001 From: jl777 Date: Thu, 24 Jan 2019 02:29:23 -1100 Subject: [PATCH] Undo for tmp files --- src/main.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 73f910d10..fe1503434 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4637,18 +4637,18 @@ bool FindBlockPos(int32_t tmpflag,CValidationState &state, CDiskBlockPos &pos, u bool FindUndoPos(CValidationState &state, int nFile, CDiskBlockPos &pos, unsigned int nAddSize) { + std::vector *ptr; int *lastfilep; + LOCK(cs_LastBlockFile); if ( nFile >= TMPFILE_START ) { - fprintf(stderr,"FindUndoPos unexpected tmpfile %d\n",nFile); - return(false); - } + nFile %= TMPFILE_START; + ptr = &tmpBlockFiles; + } else ptr = &vinfoBlockFile; + pos.nFile = nFile; - - LOCK(cs_LastBlockFile); - unsigned int nNewSize; - pos.nPos = vinfoBlockFile[nFile].nUndoSize; - nNewSize = vinfoBlockFile[nFile].nUndoSize += nAddSize; + pos.nPos = (*ptr)[nFile].nUndoSize; + nNewSize = (*ptr)[nFile].nUndoSize += nAddSize; setDirtyFileInfo.insert(nFile); unsigned int nOldChunks = (pos.nPos + UNDOFILE_CHUNK_SIZE - 1) / UNDOFILE_CHUNK_SIZE;