summaryrefslogtreecommitdiff
path: root/storage/innobase/include
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2023-01-19 16:10:18 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2023-01-19 16:10:18 +0200
commit7fa5cce305df0fd4d938c047a80b998bb261f956 (patch)
tree1b480250c78517922d673d1c70c81f4f73a7eee5 /storage/innobase/include
parenta01abad6193a39a9cdaa2b36b2a40be1759be0ce (diff)
downloadmariadb-git-7fa5cce305df0fd4d938c047a80b998bb261f956.tar.gz
MDEV-30289: Remove the pointer indirection for mtr_t::m_memo
Diffstat (limited to 'storage/innobase/include')
-rw-r--r--storage/innobase/include/mtr0mtr.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/storage/innobase/include/mtr0mtr.h b/storage/innobase/include/mtr0mtr.h
index 1b7455c046b..84e78ffc083 100644
--- a/storage/innobase/include/mtr0mtr.h
+++ b/storage/innobase/include/mtr0mtr.h
@@ -77,6 +77,9 @@ struct mtr_memo_slot_t
/** Mini-transaction handle and buffer */
struct mtr_t {
+ mtr_t();
+ ~mtr_t();
+
/** Start a mini-transaction. */
void start();
@@ -91,11 +94,11 @@ struct mtr_t {
/** Release latches of unmodified buffer pages.
@param begin first slot to release */
void rollback_to_savepoint(ulint begin)
- { rollback_to_savepoint(begin, m_memo->size()); }
+ { rollback_to_savepoint(begin, m_memo.size()); }
/** Release the last acquired buffer page latch. */
void release_last_page()
- { auto s= m_memo->size(); rollback_to_savepoint(s - 1, s); }
+ { auto s= m_memo.size(); rollback_to_savepoint(s - 1, s); }
/** Commit a mini-transaction that is shrinking a tablespace.
@param space tablespace that is being shrunk */
@@ -119,7 +122,7 @@ struct mtr_t {
ulint get_savepoint() const
{
ut_ad(is_active());
- return m_memo ? m_memo->size() : 0;
+ return m_memo.size();
}
/** Release the (index tree) s-latch stored in an mtr memo after a savepoint.
@@ -128,7 +131,7 @@ struct mtr_t {
void release_s_latch_at_savepoint(ulint savepoint, index_lock *lock)
{
ut_ad(is_active());
- mtr_memo_slot_t &slot= m_memo->at(savepoint);
+ mtr_memo_slot_t &slot= m_memo[savepoint];
ut_ad(slot.object == lock);
ut_ad(slot.type == MTR_MEMO_S_LOCK);
slot.object= nullptr;
@@ -138,7 +141,7 @@ struct mtr_t {
void release_block_at_savepoint(ulint savepoint, buf_block_t *block)
{
ut_ad(is_active());
- mtr_memo_slot_t &slot= m_memo->at(savepoint);
+ mtr_memo_slot_t &slot= m_memo[savepoint];
ut_ad(slot.object == block);
ut_ad(!(slot.type & MTR_MEMO_MODIFY));
slot.object= nullptr;
@@ -172,7 +175,7 @@ struct mtr_t {
ut_ad(is_active());
ut_ad(!memo_contains_flagged(block, MTR_MEMO_PAGE_S_FIX |
MTR_MEMO_PAGE_X_FIX | MTR_MEMO_PAGE_SX_FIX));
- mtr_memo_slot_t &slot= m_memo->at(savepoint);
+ mtr_memo_slot_t &slot= m_memo[savepoint];
ut_ad(slot.object == block);
ut_ad(slot.type == MTR_MEMO_BUF_FIX);
slot.type= MTR_MEMO_PAGE_X_FIX;
@@ -189,7 +192,7 @@ struct mtr_t {
ut_ad(is_active());
ut_ad(!memo_contains_flagged(block, MTR_MEMO_PAGE_S_FIX |
MTR_MEMO_PAGE_X_FIX | MTR_MEMO_PAGE_SX_FIX));
- mtr_memo_slot_t &slot= m_memo->at(savepoint);
+ mtr_memo_slot_t &slot= m_memo[savepoint];
ut_ad(slot.object == block);
ut_ad(slot.type == MTR_MEMO_BUF_FIX);
slot.type= MTR_MEMO_PAGE_SX_FIX;
@@ -409,7 +412,7 @@ public:
@param latch latch type */
void u_lock_register(ulint savepoint)
{
- mtr_memo_slot_t &slot= m_memo->at(savepoint);
+ mtr_memo_slot_t &slot= m_memo[savepoint];
ut_ad(slot.type == MTR_MEMO_BUF_FIX);
slot.type= MTR_MEMO_PAGE_SX_FIX;
}
@@ -418,7 +421,7 @@ public:
@param latch latch type */
void s_lock_register(ulint savepoint)
{
- mtr_memo_slot_t &slot= m_memo->at(savepoint);
+ mtr_memo_slot_t &slot= m_memo[savepoint];
ut_ad(slot.type == MTR_MEMO_BUF_FIX);
slot.type= MTR_MEMO_PAGE_S_FIX;
}
@@ -477,10 +480,7 @@ public:
m_made_dirty=
is_block_dirtied(*static_cast<const buf_page_t*>(object));
- if (!m_memo)
- m_memo= new std::vector<mtr_memo_slot_t>(1, {object, type});
- else
- m_memo->emplace_back(mtr_memo_slot_t{object, type});
+ m_memo.emplace_back(mtr_memo_slot_t{object, type});
}
/** @return the size of the log is empty */
@@ -790,7 +790,7 @@ private:
#endif /* UNIV_DEBUG */
/** acquired dict_index_t::lock, fil_space_t::latch, buf_block_t */
- std::vector<mtr_memo_slot_t> *m_memo= nullptr;
+ std::vector<mtr_memo_slot_t> m_memo;
/** mini-transaction log */
mtr_buf_t m_log;