Skip to content

Commit 849a7e6

Browse files
committed
Merge pull request #6948
22e7807 Always flush block and undo when switching to new file (Pieter Wuille)
2 parents 3038eb6 + 22e7807 commit 849a7e6

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/main.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2542,8 +2542,6 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
25422542

25432543
if (!fKnown) {
25442544
while (vinfoBlockFile[nFile].nSize + nAddSize >= MAX_BLOCKFILE_SIZE) {
2545-
LogPrintf("Leaving block file %i: %s\n", nFile, vinfoBlockFile[nFile].ToString());
2546-
FlushBlockFile(true);
25472545
nFile++;
25482546
if (vinfoBlockFile.size() <= nFile) {
25492547
vinfoBlockFile.resize(nFile + 1);
@@ -2553,7 +2551,14 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
25532551
pos.nPos = vinfoBlockFile[nFile].nSize;
25542552
}
25552553

2556-
nLastBlockFile = nFile;
2554+
if (nFile != nLastBlockFile) {
2555+
if (!fKnown) {
2556+
LogPrintf("Leaving block file %i: %s\n", nFile, vinfoBlockFile[nFile].ToString());
2557+
}
2558+
FlushBlockFile(!fKnown);
2559+
nLastBlockFile = nFile;
2560+
}
2561+
25572562
vinfoBlockFile[nFile].AddBlock(nHeight, nTime);
25582563
if (fKnown)
25592564
vinfoBlockFile[nFile].nSize = std::max(pos.nPos + nAddSize, vinfoBlockFile[nFile].nSize);

0 commit comments

Comments
 (0)