diff --git a/include/pingcap/kv/LockResolver.h b/include/pingcap/kv/LockResolver.h index 6b510c8..11800e6 100644 --- a/include/pingcap/kv/LockResolver.h +++ b/include/pingcap/kv/LockResolver.h @@ -246,14 +246,14 @@ class LockResolver } } - TxnStatus * getResolved(uint64_t txn_id) + std::optional getResolved(uint64_t txn_id) { std::shared_lock lk(mu); auto it = resolved.find(txn_id); if (it == resolved.end()) - return nullptr; - return &(it->second); + return std::nullopt; + return it->second; } diff --git a/src/kv/LockResolver.cc b/src/kv/LockResolver.cc index 15cfa4c..90ef4f4 100644 --- a/src/kv/LockResolver.cc +++ b/src/kv/LockResolver.cc @@ -170,8 +170,8 @@ int64_t LockResolver::resolveLocksForWrite(Backoffer & bo, uint64_t caller_start TxnStatus LockResolver::getTxnStatus(Backoffer & bo, uint64_t txn_id, const std::string & primary, uint64_t caller_start_ts, uint64_t current_ts, bool rollback_if_not_exists, bool force_sync_commit, bool is_txn_file) { - TxnStatus * cached_status = getResolved(txn_id); - if (cached_status != nullptr) + auto cached_status = getResolved(txn_id); + if (cached_status.has_value()) { return *cached_status; }