diff options
author | fanquake <fanquake@gmail.com> | 2022-01-27 16:57:11 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2022-01-27 16:57:40 +0800 |
commit | d87a37a4abab80c2948449548fc0ea2618193be3 (patch) | |
tree | a0669c334a76490586ff4c3da0d585097d59dab5 /src | |
parent | 4241c193d492e8c02489ed4834469e02409bea9b (diff) | |
parent | 5e8975e2694c3178ae73deb28986e1fb5466147e (diff) | |
download | bitcoin-d87a37a4abab80c2948449548fc0ea2618193be3.tar.xz |
Merge bitcoin/bitcoin#24167: fs: consistently use fsbridge:: for ifstream / ofstream
5e8975e2694c3178ae73deb28986e1fb5466147e fs: consistently use fsbridge for fopen() (fanquake)
486261dfcb5ea3ec205a632066298ffa492de466 fs: add missing <cassert> include (fanquake)
21f781ad7921ebda9f38a6be362e23750d8cd5a6 fs: consistently use fsbridge for {i,o}fstream (fanquake)
Pull request description:
These changes are part of #20744, but are also ok to do now, and reduce the diff in that PR. See commit messages for details. Revived from #23857.
ACKs for top commit:
laanwj:
Code review ACK 5e8975e2694c3178ae73deb28986e1fb5466147e
MarcoFalke:
ACK 5e8975e2694c3178ae73deb28986e1fb5466147e 🏕
Tree-SHA512: ee2dc857ce2479b39b65615e689f934b962e580299b0e7a0c6361633402b0d61e6e4479f41f6480e2c46101264d93f330b8f7b57e56df95a7f77e046a4e44697
Diffstat (limited to 'src')
-rw-r--r-- | src/bench/bench.cpp | 4 | ||||
-rw-r--r-- | src/bitcoin-tx.cpp | 3 | ||||
-rw-r--r-- | src/fs.cpp | 4 | ||||
-rw-r--r-- | src/qt/psbtoperationsdialog.cpp | 2 | ||||
-rw-r--r-- | src/qt/sendcoinsdialog.cpp | 2 | ||||
-rw-r--r-- | src/qt/walletframe.cpp | 2 | ||||
-rw-r--r-- | src/test/fuzz/fuzz.cpp | 2 | ||||
-rw-r--r-- | src/test/script_tests.cpp | 2 | ||||
-rw-r--r-- | src/util/system.cpp | 2 |
9 files changed, 13 insertions, 10 deletions
diff --git a/src/bench/bench.cpp b/src/bench/bench.cpp index d7b4228566..9bd176f0a0 100644 --- a/src/bench/bench.cpp +++ b/src/bench/bench.cpp @@ -4,10 +4,10 @@ #include <bench/bench.h> +#include <fs.h> #include <test/util/setup_common.h> #include <chrono> -#include <fstream> #include <functional> #include <iostream> #include <map> @@ -29,7 +29,7 @@ void GenerateTemplateResults(const std::vector<ankerl::nanobench::Result>& bench // nothing to write, bail out return; } - std::ofstream fout(filename); + fsbridge::ofstream fout{fs::PathFromString(filename)}; if (fout.is_open()) { ankerl::nanobench::render(tpl, benchmarkResults, fout); } else { diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp index edec883264..8237d7d34f 100644 --- a/src/bitcoin-tx.cpp +++ b/src/bitcoin-tx.cpp @@ -12,6 +12,7 @@ #include <consensus/consensus.h> #include <core_io.h> #include <key_io.h> +#include <fs.h> #include <policy/policy.h> #include <policy/rbf.h> #include <primitives/transaction.h> @@ -158,7 +159,7 @@ static void RegisterLoad(const std::string& strInput) std::string key = strInput.substr(0, pos); std::string filename = strInput.substr(pos + 1, std::string::npos); - FILE *f = fopen(filename.c_str(), "r"); + FILE *f = fsbridge::fopen(filename.c_str(), "r"); if (!f) { std::string strErr = "Cannot open file " + filename; throw std::runtime_error(strErr); diff --git a/src/fs.cpp b/src/fs.cpp index 34a0348578..8fcadcb3ef 100644 --- a/src/fs.cpp +++ b/src/fs.cpp @@ -7,7 +7,6 @@ #ifndef WIN32 #include <cstring> #include <fcntl.h> -#include <string> #include <sys/file.h> #include <sys/utsname.h> #include <unistd.h> @@ -20,6 +19,9 @@ #include <windows.h> #endif +#include <cassert> +#include <string> + namespace fsbridge { FILE *fopen(const fs::path& p, const char *mode) diff --git a/src/qt/psbtoperationsdialog.cpp b/src/qt/psbtoperationsdialog.cpp index 0962dfe9db..d328290cbc 100644 --- a/src/qt/psbtoperationsdialog.cpp +++ b/src/qt/psbtoperationsdialog.cpp @@ -158,7 +158,7 @@ void PSBTOperationsDialog::saveTransaction() { if (filename.isEmpty()) { return; } - std::ofstream out(filename.toLocal8Bit().data(), std::ofstream::out | std::ofstream::binary); + fsbridge::ofstream out{filename.toLocal8Bit().data(), fsbridge::ofstream::out | fsbridge::ofstream::binary}; out << ssTx.str(); out.close(); showStatus(tr("PSBT saved to disk."), StatusLevel::INFO); diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 50436a46d8..1206f610cd 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -509,7 +509,7 @@ void SendCoinsDialog::sendButtonClicked([[maybe_unused]] bool checked) if (filename.isEmpty()) { return; } - std::ofstream out(filename.toLocal8Bit().data(), std::ofstream::out | std::ofstream::binary); + fsbridge::ofstream out{filename.toLocal8Bit().data(), fsbridge::ofstream::out | fsbridge::ofstream::binary}; out << ssTx.str(); out.close(); Q_EMIT message(tr("PSBT saved"), "PSBT saved to disk", CClientUIInterface::MSG_INFORMATION); diff --git a/src/qt/walletframe.cpp b/src/qt/walletframe.cpp index 98f5ebce99..fba83dd510 100644 --- a/src/qt/walletframe.cpp +++ b/src/qt/walletframe.cpp @@ -210,7 +210,7 @@ void WalletFrame::gotoLoadPSBT(bool from_clipboard) Q_EMIT message(tr("Error"), tr("PSBT file must be smaller than 100 MiB"), CClientUIInterface::MSG_ERROR); return; } - std::ifstream in(filename.toLocal8Bit().data(), std::ios::binary); + fsbridge::ifstream in{filename.toLocal8Bit().data(), std::ios::binary}; data = std::string(std::istreambuf_iterator<char>{in}, {}); } diff --git a/src/test/fuzz/fuzz.cpp b/src/test/fuzz/fuzz.cpp index e9debd8c45..60c48e7c22 100644 --- a/src/test/fuzz/fuzz.cpp +++ b/src/test/fuzz/fuzz.cpp @@ -80,7 +80,7 @@ void initialize() } if (const char* out_path = std::getenv("WRITE_ALL_FUZZ_TARGETS_AND_ABORT")) { std::cout << "Writing all fuzz target names to '" << out_path << "'." << std::endl; - std::ofstream out_stream(out_path, std::ios::binary); + fsbridge::ofstream out_stream{out_path, std::ios::binary}; for (const auto& t : FuzzTargets()) { if (std::get<2>(t.second)) continue; out_stream << t.first << std::endl; diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index eacd7ae894..0da296495f 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -923,7 +923,7 @@ BOOST_AUTO_TEST_CASE(script_build) } #ifdef UPDATE_JSON_TESTS - FILE* file = fopen("script_tests.json.gen", "w"); + FILE* file = fsbridge::fopen("script_tests.json.gen", "w"); fputs(strGen.c_str(), file); fclose(file); #endif diff --git a/src/util/system.cpp b/src/util/system.cpp index e34cdc7fb9..19de08d1ea 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -146,7 +146,7 @@ bool CheckDiskSpace(const fs::path& dir, uint64_t additional_bytes) } std::streampos GetFileSize(const char* path, std::streamsize max) { - std::ifstream file(path, std::ios::binary); + fsbridge::ifstream file{path, std::ios::binary}; file.ignore(max); return file.gcount(); } |