diff --git a/utilities/transactions/lock/point/point_lock_manager.cc b/utilities/transactions/lock/point/point_lock_manager.cc index 8846cb87a..82897897b 100644 --- a/utilities/transactions/lock/point/point_lock_manager.cc +++ b/utilities/transactions/lock/point/point_lock_manager.cc @@ -587,10 +587,7 @@ void PointLockManager::UnLockKey(PessimisticTransaction* txn, if (txns.size() == 1) { stripe->keys.erase(stripe_iter); } else { - auto last_it = txns.end() - 1; - if (txn_it != last_it) { - *txn_it = *last_it; - } + std::swap(txns.back(), *txn_it); txns.pop_back(); }