mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 20:12:57 +01:00
Merge bitcoin/bitcoin#25017: validation: make CScriptCheck and prevector swap members noexcept
e5485e8e4be7f2ee0671f58c3dcce35c68ba0ee0 test, bench: make prevector and checkqueue swap member functions noexcept (Jon Atack) abc1ee509025d92db5311c3f5df3b61c09cad24f validation: make CScriptCheck and prevector swap member functions noexcept (Jon Atack) Pull request description: along with those seen elsewhere in the codebase (prevector and checkqueue units/fuzz/bench). A swap must not fail; when a class has a swap member function, it should be declared noexcept. https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#c84-a-swap-function-must-not-fail ACKs for top commit: pk-b2: ACKe5485e8e4b
w0xlt: ACKe5485e8e4b
Tree-SHA512: c82359d5e13f9262ce45efdae9baf71e41ed26568e0aff620e2bfb0ab37a62b6d56ae9340a28a0332c902cc1fa87da3fb72d6f6d6f53a8b7e695a5011f71f7f1
This commit is contained in:
parent
89c1e775c5
commit
1b1badff8f
@ -35,7 +35,10 @@ static void CCheckQueueSpeedPrevectorJob(benchmark::Bench& bench)
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void swap(PrevectorJob& x){p.swap(x.p);};
|
void swap(PrevectorJob& x) noexcept
|
||||||
|
{
|
||||||
|
p.swap(x.p);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
CCheckQueue<PrevectorJob> queue {QUEUE_BATCH_SIZE};
|
CCheckQueue<PrevectorJob> queue {QUEUE_BATCH_SIZE};
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ public:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(CHDChain& first, CHDChain& second) // nothrow
|
void swap(CHDChain& first, CHDChain& second) noexcept
|
||||||
{
|
{
|
||||||
// enable ADL (not necessary in our case, but good practice)
|
// enable ADL (not necessary in our case, but good practice)
|
||||||
using std::swap;
|
using std::swap;
|
||||||
|
@ -475,7 +475,8 @@ public:
|
|||||||
return *item_ptr(size() - 1);
|
return *item_ptr(size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(prevector<N, T, Size, Diff>& other) {
|
void swap(prevector<N, T, Size, Diff>& other) noexcept
|
||||||
|
{
|
||||||
std::swap(_union, other._union);
|
std::swap(_union, other._union);
|
||||||
std::swap(_size, other._size);
|
std::swap(_size, other._size);
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ struct FakeCheck {
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void swap(FakeCheck& x){};
|
void swap(FakeCheck& x) noexcept {};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FakeCheckCheckCompletion {
|
struct FakeCheckCheckCompletion {
|
||||||
@ -37,7 +37,7 @@ struct FakeCheckCheckCompletion {
|
|||||||
n_calls.fetch_add(1, std::memory_order_relaxed);
|
n_calls.fetch_add(1, std::memory_order_relaxed);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void swap(FakeCheckCheckCompletion& x){};
|
void swap(FakeCheckCheckCompletion& x) noexcept {};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FailingCheck {
|
struct FailingCheck {
|
||||||
@ -48,7 +48,7 @@ struct FailingCheck {
|
|||||||
{
|
{
|
||||||
return !fails;
|
return !fails;
|
||||||
}
|
}
|
||||||
void swap(FailingCheck& x)
|
void swap(FailingCheck& x) noexcept
|
||||||
{
|
{
|
||||||
std::swap(fails, x.fails);
|
std::swap(fails, x.fails);
|
||||||
};
|
};
|
||||||
@ -66,7 +66,10 @@ struct UniqueCheck {
|
|||||||
results.insert(check_id);
|
results.insert(check_id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
void swap(UniqueCheck& x) { std::swap(x.check_id, check_id); };
|
void swap(UniqueCheck& x) noexcept
|
||||||
|
{
|
||||||
|
std::swap(x.check_id, check_id);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +97,10 @@ struct MemoryCheck {
|
|||||||
{
|
{
|
||||||
fake_allocated_memory.fetch_sub(b, std::memory_order_relaxed);
|
fake_allocated_memory.fetch_sub(b, std::memory_order_relaxed);
|
||||||
};
|
};
|
||||||
void swap(MemoryCheck& x) { std::swap(b, x.b); };
|
void swap(MemoryCheck& x) noexcept
|
||||||
|
{
|
||||||
|
std::swap(b, x.b);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FrozenCleanupCheck {
|
struct FrozenCleanupCheck {
|
||||||
@ -118,7 +124,10 @@ struct FrozenCleanupCheck {
|
|||||||
cv.wait(l, []{ return nFrozen.load(std::memory_order_relaxed) == 0;});
|
cv.wait(l, []{ return nFrozen.load(std::memory_order_relaxed) == 0;});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void swap(FrozenCleanupCheck& x){std::swap(should_freeze, x.should_freeze);};
|
void swap(FrozenCleanupCheck& x) noexcept
|
||||||
|
{
|
||||||
|
std::swap(should_freeze, x.should_freeze);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
// Static Allocations
|
// Static Allocations
|
||||||
|
@ -26,7 +26,7 @@ struct DumbCheck {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(DumbCheck& x)
|
void swap(DumbCheck& x) noexcept
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -161,7 +161,7 @@ public:
|
|||||||
pre_vector.shrink_to_fit();
|
pre_vector.shrink_to_fit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap()
|
void swap() noexcept
|
||||||
{
|
{
|
||||||
real_vector.swap(real_vector_alt);
|
real_vector.swap(real_vector_alt);
|
||||||
pre_vector.swap(pre_vector_alt);
|
pre_vector.swap(pre_vector_alt);
|
||||||
|
@ -165,7 +165,8 @@ public:
|
|||||||
test();
|
test();
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap() {
|
void swap() noexcept
|
||||||
|
{
|
||||||
real_vector.swap(real_vector_alt);
|
real_vector.swap(real_vector_alt);
|
||||||
pre_vector.swap(pre_vector_alt);
|
pre_vector.swap(pre_vector_alt);
|
||||||
test();
|
test();
|
||||||
|
@ -289,7 +289,8 @@ public:
|
|||||||
|
|
||||||
bool operator()();
|
bool operator()();
|
||||||
|
|
||||||
void swap(CScriptCheck &check) {
|
void swap(CScriptCheck& check) noexcept
|
||||||
|
{
|
||||||
std::swap(ptxTo, check.ptxTo);
|
std::swap(ptxTo, check.ptxTo);
|
||||||
std::swap(m_tx_out, check.m_tx_out);
|
std::swap(m_tx_out, check.m_tx_out);
|
||||||
std::swap(nIn, check.nIn);
|
std::swap(nIn, check.nIn);
|
||||||
|
Loading…
Reference in New Issue
Block a user