diff --git a/src/common/db_abstract_accessor.h b/src/common/db_abstract_accessor.h index d74937ee..56e517cb 100644 --- a/src/common/db_abstract_accessor.h +++ b/src/common/db_abstract_accessor.h @@ -659,28 +659,27 @@ namespace tools { return bdb.size(m_h); } - size_t clear() + + bool clear() { - bdb.clear(m_h); + bool result = bdb.clear(m_h); m_isolation.isolated_write_access([&](){ size_cache_valid = false; return true; }); - return true; + return result; } bool erase_validate(const t_key& k) { - auto res_ptr = this->get(k); - bdb.erase(m_h, k); + bool result = bdb.erase(m_h, k); m_isolation.isolated_write_access([&](){ size_cache_valid = false; return true; }); - return static_cast(res_ptr); + return result; } - void erase(const t_key& k) { bdb.erase(m_h, k); @@ -861,13 +860,10 @@ namespace tools operator t_value() const { - static_assert(std::is_pod::value, "t_value must be a POD type."); + std::shared_ptr value_ptr = m_accessor.template explicit_get >(m_key); + if (value_ptr.get()) + return *value_ptr.get(); - std::shared_ptr vptr = m_accessor.template explicit_get >(m_key); - if (vptr.get()) - { - return *vptr.get(); - } return AUTO_VAL_INIT(t_value()); } };