Make SafeDbt DB_DBT_MALLOC on default initialization
If we're constructing the SafeDbt without provided data, it is always malloced, so that is the case we expose. Also run clang-format.
This commit is contained in:
parent
1a9f9f7e5e
commit
4a86a0acd9
2 changed files with 12 additions and 10 deletions
|
@ -247,12 +247,12 @@ BerkeleyEnvironment::VerifyResult BerkeleyEnvironment::Verify(const std::string&
|
||||||
return (fRecovered ? VerifyResult::RECOVER_OK : VerifyResult::RECOVER_FAIL);
|
return (fRecovered ? VerifyResult::RECOVER_OK : VerifyResult::RECOVER_FAIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
BerkeleyBatch::SafeDbt::SafeDbt(u_int32_t flags)
|
BerkeleyBatch::SafeDbt::SafeDbt()
|
||||||
{
|
{
|
||||||
m_dbt.set_flags(flags);
|
m_dbt.set_flags(DB_DBT_MALLOC);
|
||||||
}
|
}
|
||||||
|
|
||||||
BerkeleyBatch::SafeDbt::SafeDbt(void *data, size_t size)
|
BerkeleyBatch::SafeDbt::SafeDbt(void* data, size_t size)
|
||||||
: m_dbt(data, size)
|
: m_dbt(data, size)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,13 +170,15 @@ private:
|
||||||
class BerkeleyBatch
|
class BerkeleyBatch
|
||||||
{
|
{
|
||||||
/** RAII class that automatically cleanses its data on destruction */
|
/** RAII class that automatically cleanses its data on destruction */
|
||||||
class SafeDbt final {
|
class SafeDbt final
|
||||||
|
{
|
||||||
Dbt m_dbt;
|
Dbt m_dbt;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// construct Dbt with data or flags
|
// construct Dbt with internally-managed data
|
||||||
SafeDbt(u_int32_t flags = 0);
|
SafeDbt();
|
||||||
SafeDbt(void *data, size_t size);
|
// construct Dbt with provided data
|
||||||
|
SafeDbt(void* data, size_t size);
|
||||||
~SafeDbt();
|
~SafeDbt();
|
||||||
|
|
||||||
// delegate to Dbt
|
// delegate to Dbt
|
||||||
|
@ -227,7 +229,7 @@ public:
|
||||||
SafeDbt datKey(ssKey.data(), ssKey.size());
|
SafeDbt datKey(ssKey.data(), ssKey.size());
|
||||||
|
|
||||||
// Read
|
// Read
|
||||||
SafeDbt datValue(DB_DBT_MALLOC);
|
SafeDbt datValue;
|
||||||
int ret = pdb->get(activeTxn, datKey, datValue, 0);
|
int ret = pdb->get(activeTxn, datKey, datValue, 0);
|
||||||
bool success = false;
|
bool success = false;
|
||||||
if (datValue.get_data() != nullptr) {
|
if (datValue.get_data() != nullptr) {
|
||||||
|
@ -318,8 +320,8 @@ public:
|
||||||
int ReadAtCursor(Dbc* pcursor, CDataStream& ssKey, CDataStream& ssValue)
|
int ReadAtCursor(Dbc* pcursor, CDataStream& ssKey, CDataStream& ssValue)
|
||||||
{
|
{
|
||||||
// Read at cursor
|
// Read at cursor
|
||||||
SafeDbt datKey(DB_DBT_MALLOC);
|
SafeDbt datKey;
|
||||||
SafeDbt datValue(DB_DBT_MALLOC);
|
SafeDbt datValue;
|
||||||
int ret = pcursor->get(datKey, datValue, DB_NEXT);
|
int ret = pcursor->get(datKey, datValue, DB_NEXT);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in a new issue