Skip to content

Commit 004b184

Browse files
committed
wallet: bdb: move BerkeleyDatabase constructor to cpp file
Else some compilers/stdlibs may not be able to construct std::unique_ptr<Db> without Db defined.
1 parent b3582ba commit 004b184

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/wallet/bdb.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,13 @@ static Span<const std::byte> SpanFromDbt(const SafeDbt& dbt)
296296
return {reinterpret_cast<const std::byte*>(dbt.get_data()), dbt.get_size()};
297297
}
298298

299+
BerkeleyDatabase::BerkeleyDatabase(std::shared_ptr<BerkeleyEnvironment> env, fs::path filename, const DatabaseOptions& options) :
300+
WalletDatabase(), env(std::move(env)), m_filename(std::move(filename)), m_max_log_mb(options.max_log_mb)
301+
{
302+
auto inserted = this->env->m_databases.emplace(m_filename, std::ref(*this));
303+
assert(inserted.second);
304+
}
305+
299306
bool BerkeleyDatabase::Verify(bilingual_str& errorStr)
300307
{
301308
fs::path walletDir = env->Directory();

src/wallet/bdb.h

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,7 @@ class BerkeleyDatabase : public WalletDatabase
8484
BerkeleyDatabase() = delete;
8585

8686
/** Create DB handle to real database */
87-
BerkeleyDatabase(std::shared_ptr<BerkeleyEnvironment> env, fs::path filename, const DatabaseOptions& options) :
88-
WalletDatabase(), env(std::move(env)), m_filename(std::move(filename)), m_max_log_mb(options.max_log_mb)
89-
{
90-
auto inserted = this->env->m_databases.emplace(m_filename, std::ref(*this));
91-
assert(inserted.second);
92-
}
87+
BerkeleyDatabase(std::shared_ptr<BerkeleyEnvironment> env, fs::path filename, const DatabaseOptions& options);
9388

9489
~BerkeleyDatabase() override;
9590

0 commit comments

Comments
 (0)