Merge pull request #6948
22e7807
Always flush block and undo when switching to new file (Pieter Wuille)
This commit is contained in:
commit
849a7e6453
1 changed files with 8 additions and 3 deletions
|
@ -2542,8 +2542,6 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
|
||||||
|
|
||||||
if (!fKnown) {
|
if (!fKnown) {
|
||||||
while (vinfoBlockFile[nFile].nSize + nAddSize >= MAX_BLOCKFILE_SIZE) {
|
while (vinfoBlockFile[nFile].nSize + nAddSize >= MAX_BLOCKFILE_SIZE) {
|
||||||
LogPrintf("Leaving block file %i: %s\n", nFile, vinfoBlockFile[nFile].ToString());
|
|
||||||
FlushBlockFile(true);
|
|
||||||
nFile++;
|
nFile++;
|
||||||
if (vinfoBlockFile.size() <= nFile) {
|
if (vinfoBlockFile.size() <= nFile) {
|
||||||
vinfoBlockFile.resize(nFile + 1);
|
vinfoBlockFile.resize(nFile + 1);
|
||||||
|
@ -2553,7 +2551,14 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
|
||||||
pos.nPos = vinfoBlockFile[nFile].nSize;
|
pos.nPos = vinfoBlockFile[nFile].nSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nFile != nLastBlockFile) {
|
||||||
|
if (!fKnown) {
|
||||||
|
LogPrintf("Leaving block file %i: %s\n", nFile, vinfoBlockFile[nFile].ToString());
|
||||||
|
}
|
||||||
|
FlushBlockFile(!fKnown);
|
||||||
nLastBlockFile = nFile;
|
nLastBlockFile = nFile;
|
||||||
|
}
|
||||||
|
|
||||||
vinfoBlockFile[nFile].AddBlock(nHeight, nTime);
|
vinfoBlockFile[nFile].AddBlock(nHeight, nTime);
|
||||||
if (fKnown)
|
if (fKnown)
|
||||||
vinfoBlockFile[nFile].nSize = std::max(pos.nPos + nAddSize, vinfoBlockFile[nFile].nSize);
|
vinfoBlockFile[nFile].nSize = std::max(pos.nPos + nAddSize, vinfoBlockFile[nFile].nSize);
|
||||||
|
|
Loading…
Add table
Reference in a new issue