Merge pull request #4986
6eb67b0
autofile: Disallow by-value copies of CAutoFile (Cory Fields)eee030f
autofile: don't copy CAutoFile by value (Cory Fields)
This commit is contained in:
commit
64cfaf891f
5 changed files with 13 additions and 9 deletions
|
@ -1058,7 +1058,7 @@ bool AppInit2(boost::thread_group& threadGroup)
|
|||
}
|
||||
|
||||
boost::filesystem::path est_path = GetDataDir() / FEE_ESTIMATES_FILENAME;
|
||||
CAutoFile est_filein = CAutoFile(fopen(est_path.string().c_str(), "rb"), SER_DISK, CLIENT_VERSION);
|
||||
CAutoFile est_filein(fopen(est_path.string().c_str(), "rb"), SER_DISK, CLIENT_VERSION);
|
||||
// Allowed to fail as this file IS missing on first startup.
|
||||
if (est_filein)
|
||||
mempool.ReadFeeEstimates(est_filein);
|
||||
|
|
|
@ -1082,7 +1082,7 @@ bool GetTransaction(const uint256 &hash, CTransaction &txOut, uint256 &hashBlock
|
|||
bool WriteBlockToDisk(CBlock& block, CDiskBlockPos& pos)
|
||||
{
|
||||
// Open history file to append
|
||||
CAutoFile fileout = CAutoFile(OpenBlockFile(pos), SER_DISK, CLIENT_VERSION);
|
||||
CAutoFile fileout(OpenBlockFile(pos), SER_DISK, CLIENT_VERSION);
|
||||
if (!fileout)
|
||||
return error("WriteBlockToDisk : OpenBlockFile failed");
|
||||
|
||||
|
@ -1110,7 +1110,7 @@ bool ReadBlockFromDisk(CBlock& block, const CDiskBlockPos& pos)
|
|||
block.SetNull();
|
||||
|
||||
// Open history file to read
|
||||
CAutoFile filein = CAutoFile(OpenBlockFile(pos, true), SER_DISK, CLIENT_VERSION);
|
||||
CAutoFile filein(OpenBlockFile(pos, true), SER_DISK, CLIENT_VERSION);
|
||||
if (!filein)
|
||||
return error("ReadBlockFromDisk : OpenBlockFile failed");
|
||||
|
||||
|
@ -4503,7 +4503,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
|
|||
bool CBlockUndo::WriteToDisk(CDiskBlockPos &pos, const uint256 &hashBlock)
|
||||
{
|
||||
// Open history file to append
|
||||
CAutoFile fileout = CAutoFile(OpenUndoFile(pos), SER_DISK, CLIENT_VERSION);
|
||||
CAutoFile fileout(OpenUndoFile(pos), SER_DISK, CLIENT_VERSION);
|
||||
if (!fileout)
|
||||
return error("CBlockUndo::WriteToDisk : OpenUndoFile failed");
|
||||
|
||||
|
@ -4535,7 +4535,7 @@ bool CBlockUndo::WriteToDisk(CDiskBlockPos &pos, const uint256 &hashBlock)
|
|||
bool CBlockUndo::ReadFromDisk(const CDiskBlockPos &pos, const uint256 &hashBlock)
|
||||
{
|
||||
// Open history file to read
|
||||
CAutoFile filein = CAutoFile(OpenUndoFile(pos, true), SER_DISK, CLIENT_VERSION);
|
||||
CAutoFile filein(OpenUndoFile(pos, true), SER_DISK, CLIENT_VERSION);
|
||||
if (!filein)
|
||||
return error("CBlockUndo::ReadFromDisk : OpenBlockFile failed");
|
||||
|
||||
|
|
|
@ -1957,7 +1957,7 @@ bool CAddrDB::Write(const CAddrMan& addr)
|
|||
// open temp output file, and associate with CAutoFile
|
||||
boost::filesystem::path pathTmp = GetDataDir() / tmpfn;
|
||||
FILE *file = fopen(pathTmp.string().c_str(), "wb");
|
||||
CAutoFile fileout = CAutoFile(file, SER_DISK, CLIENT_VERSION);
|
||||
CAutoFile fileout(file, SER_DISK, CLIENT_VERSION);
|
||||
if (!fileout)
|
||||
return error("%s : Failed to open file %s", __func__, pathTmp.string());
|
||||
|
||||
|
@ -1982,7 +1982,7 @@ bool CAddrDB::Read(CAddrMan& addr)
|
|||
{
|
||||
// open input file, and associate with CAutoFile
|
||||
FILE *file = fopen(pathAddr.string().c_str(), "rb");
|
||||
CAutoFile filein = CAutoFile(file, SER_DISK, CLIENT_VERSION);
|
||||
CAutoFile filein(file, SER_DISK, CLIENT_VERSION);
|
||||
if (!filein)
|
||||
return error("%s : Failed to open file %s", __func__, pathAddr.string());
|
||||
|
||||
|
|
|
@ -1154,7 +1154,7 @@ public:
|
|||
|
||||
|
||||
|
||||
/** RAII wrapper for FILE*.
|
||||
/** Non-refcounted RAII wrapper for FILE*.
|
||||
*
|
||||
* Will automatically close the file when it goes out of scope if not null.
|
||||
* If you're returning the file pointer, return file.release().
|
||||
|
@ -1162,6 +1162,10 @@ public:
|
|||
*/
|
||||
class CAutoFile
|
||||
{
|
||||
private:
|
||||
// Disallow copies
|
||||
CAutoFile(const CAutoFile&);
|
||||
CAutoFile& operator=(const CAutoFile&);
|
||||
protected:
|
||||
FILE* file;
|
||||
public:
|
||||
|
|
|
@ -35,7 +35,7 @@ bool read_block(const std::string& filename, CBlock& block)
|
|||
|
||||
fseek(fp, 8, SEEK_SET); // skip msgheader/size
|
||||
|
||||
CAutoFile filein = CAutoFile(fp, SER_DISK, CLIENT_VERSION);
|
||||
CAutoFile filein(fp, SER_DISK, CLIENT_VERSION);
|
||||
if (!filein) return false;
|
||||
|
||||
filein >> block;
|
||||
|
|
Loading…
Add table
Reference in a new issue