@@ -209,7 +209,7 @@ CommitNumber TipCache::cacheState(TraNumber number)
209
209
ULONG offset = number % m_transactionsPerBlock;
210
210
211
211
Sync sync (&m_sync_status, FB_FUNCTION);
212
- TransactionStatusBlock* block = getTransactionStatusBlock (sync , blockNumber);
212
+ TransactionStatusBlock* block = getTransactionStatusBlock (header , blockNumber, sync );
213
213
214
214
// This should not really happen ever
215
215
fb_assert (block);
@@ -365,7 +365,7 @@ void TipCache::mapInventoryPages(GlobalTpcHeader* header)
365
365
for (; blockNumber <= lastNumber; blockNumber++)
366
366
{
367
367
Sync sync (&m_sync_status, FB_FUNCTION);
368
- getTransactionStatusBlock (sync , blockNumber);
368
+ getTransactionStatusBlock (header , blockNumber, sync );
369
369
}
370
370
}
371
371
@@ -500,7 +500,7 @@ TipCache::TransactionStatusBlock* TipCache::createTransactionStatusBlock(ULONG b
500
500
return blockData->memory ->getHeader ();
501
501
}
502
502
503
- TipCache::TransactionStatusBlock* TipCache::getTransactionStatusBlock (Sync& sync , TpcBlockNumber blockNumber)
503
+ TipCache::TransactionStatusBlock* TipCache::getTransactionStatusBlock (GlobalTpcHeader* header , TpcBlockNumber blockNumber, Sync& sync )
504
504
{
505
505
fb_assert (sync .getState () == SYNC_NONE);
506
506
@@ -523,8 +523,6 @@ TipCache::TransactionStatusBlock* TipCache::getTransactionStatusBlock(Sync& sync
523
523
block = acc.current ()->memory ->getHeader ();
524
524
else
525
525
{
526
- GlobalTpcHeader* header = m_tpcHeader->getHeader ();
527
-
528
526
// Check if block might be too old to be created.
529
527
TraNumber oldest = header->oldest_transaction .load (std::memory_order_relaxed);
530
528
if (blockNumber >= oldest / m_transactionsPerBlock)
@@ -563,7 +561,7 @@ TraNumber TipCache::findStates(TraNumber minNumber, TraNumber maxNumber, ULONG m
563
561
564
562
const TpcBlockNumber blockNumber = tran / m_transactionsPerBlock;
565
563
transOffset = tran % m_transactionsPerBlock;
566
- statusBlock = getTransactionStatusBlock (sync , blockNumber);
564
+ statusBlock = getTransactionStatusBlock (header , blockNumber, sync );
567
565
568
566
if (sync .getState () == SYNC_EXCLUSIVE)
569
567
sync .downgrade (SYNC_SHARED);
@@ -616,7 +614,7 @@ CommitNumber TipCache::setState(TraNumber number, int state)
616
614
ULONG offset = number % m_transactionsPerBlock;
617
615
618
616
Sync sync (&m_sync_status, FB_FUNCTION);
619
- TransactionStatusBlock* block = getTransactionStatusBlock (sync , blockNumber);
617
+ TransactionStatusBlock* block = getTransactionStatusBlock (header , blockNumber, sync );
620
618
621
619
// This should not really happen
622
620
if (!block)
0 commit comments