mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-18 13:17:55 +02:00
Merge e727c2bdca into merged_master (Bitcoin PR #18088)
This commit is contained in:
commit
028afdac4a
4 changed files with 22 additions and 23 deletions
|
|
@ -359,6 +359,7 @@ fi
|
|||
if test "x$CXXFLAGS_overridden" = "xno"; then
|
||||
AX_CHECK_COMPILE_FLAG([-Wall],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wall"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wextra],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wextra"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wgnu],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wgnu"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wformat"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wvla],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wvla"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wswitch],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wswitch"],,[[$CXXFLAG_WERROR]])
|
||||
|
|
|
|||
|
|
@ -93,12 +93,10 @@ private:
|
|||
} // namespace BCLog
|
||||
|
||||
|
||||
#define LOG_TIME_MICROS(end_msg, ...) \
|
||||
BCLog::Timer<std::chrono::microseconds> PASTE2(logging_timer, __COUNTER__)(__func__, end_msg, ## __VA_ARGS__)
|
||||
#define LOG_TIME_MILLIS(end_msg, ...) \
|
||||
BCLog::Timer<std::chrono::milliseconds> PASTE2(logging_timer, __COUNTER__)(__func__, end_msg, ## __VA_ARGS__)
|
||||
#define LOG_TIME_SECONDS(end_msg, ...) \
|
||||
BCLog::Timer<std::chrono::seconds> PASTE2(logging_timer, __COUNTER__)(__func__, end_msg, ## __VA_ARGS__)
|
||||
#define LOG_TIME_MILLIS_WITH_CATEGORY(end_msg, log_category) \
|
||||
BCLog::Timer<std::chrono::milliseconds> PASTE2(logging_timer, __COUNTER__)(__func__, end_msg, log_category)
|
||||
#define LOG_TIME_SECONDS(end_msg) \
|
||||
BCLog::Timer<std::chrono::seconds> PASTE2(logging_timer, __COUNTER__)(__func__, end_msg)
|
||||
|
||||
|
||||
#endif // BITCOIN_LOGGING_TIMER_H
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ private:
|
|||
struct {
|
||||
char* indirect;
|
||||
size_type capacity;
|
||||
};
|
||||
} indirect_contents;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
alignas(char*) direct_or_indirect _union = {};
|
||||
|
|
@ -163,8 +163,8 @@ private:
|
|||
|
||||
T* direct_ptr(difference_type pos) { return reinterpret_cast<T*>(_union.direct) + pos; }
|
||||
const T* direct_ptr(difference_type pos) const { return reinterpret_cast<const T*>(_union.direct) + pos; }
|
||||
T* indirect_ptr(difference_type pos) { return reinterpret_cast<T*>(_union.indirect) + pos; }
|
||||
const T* indirect_ptr(difference_type pos) const { return reinterpret_cast<const T*>(_union.indirect) + pos; }
|
||||
T* indirect_ptr(difference_type pos) { return reinterpret_cast<T*>(_union.indirect_contents.indirect) + pos; }
|
||||
const T* indirect_ptr(difference_type pos) const { return reinterpret_cast<const T*>(_union.indirect_contents.indirect) + pos; }
|
||||
bool is_direct() const { return _size <= N; }
|
||||
|
||||
void change_capacity(size_type new_capacity) {
|
||||
|
|
@ -182,17 +182,17 @@ private:
|
|||
/* FIXME: Because malloc/realloc here won't call new_handler if allocation fails, assert
|
||||
success. These should instead use an allocator or new/delete so that handlers
|
||||
are called as necessary, but performance would be slightly degraded by doing so. */
|
||||
_union.indirect = static_cast<char*>(realloc(_union.indirect, ((size_t)sizeof(T)) * new_capacity));
|
||||
assert(_union.indirect);
|
||||
_union.capacity = new_capacity;
|
||||
_union.indirect_contents.indirect = static_cast<char*>(realloc(_union.indirect_contents.indirect, ((size_t)sizeof(T)) * new_capacity));
|
||||
assert(_union.indirect_contents.indirect);
|
||||
_union.indirect_contents.capacity = new_capacity;
|
||||
} else {
|
||||
char* new_indirect = static_cast<char*>(malloc(((size_t)sizeof(T)) * new_capacity));
|
||||
assert(new_indirect);
|
||||
T* src = direct_ptr(0);
|
||||
T* dst = reinterpret_cast<T*>(new_indirect);
|
||||
memcpy(dst, src, size() * sizeof(T));
|
||||
_union.indirect = new_indirect;
|
||||
_union.capacity = new_capacity;
|
||||
_union.indirect_contents.indirect = new_indirect;
|
||||
_union.indirect_contents.capacity = new_capacity;
|
||||
_size += N + 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -301,7 +301,7 @@ public:
|
|||
if (is_direct()) {
|
||||
return N;
|
||||
} else {
|
||||
return _union.capacity;
|
||||
return _union.indirect_contents.capacity;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -468,8 +468,8 @@ public:
|
|||
clear();
|
||||
}
|
||||
if (!is_direct()) {
|
||||
free(_union.indirect);
|
||||
_union.indirect = nullptr;
|
||||
free(_union.indirect_contents.indirect);
|
||||
_union.indirect_contents.indirect = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -521,7 +521,7 @@ public:
|
|||
if (is_direct()) {
|
||||
return 0;
|
||||
} else {
|
||||
return ((size_t)(sizeof(T))) * _union.capacity;
|
||||
return ((size_t)(sizeof(T))) * _union.indirect_contents.capacity;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2460,11 +2460,11 @@ bool CChainState::FlushStateToDisk(
|
|||
LOCK(cs_LastBlockFile);
|
||||
if (fPruneMode && (fCheckForPruning || nManualPruneHeight > 0) && !fReindex) {
|
||||
if (nManualPruneHeight > 0) {
|
||||
LOG_TIME_MILLIS("find files to prune (manual)", BCLog::BENCH);
|
||||
LOG_TIME_MILLIS_WITH_CATEGORY("find files to prune (manual)", BCLog::BENCH);
|
||||
|
||||
FindFilesToPruneManual(setFilesToPrune, nManualPruneHeight);
|
||||
} else {
|
||||
LOG_TIME_MILLIS("find files to prune", BCLog::BENCH);
|
||||
LOG_TIME_MILLIS_WITH_CATEGORY("find files to prune", BCLog::BENCH);
|
||||
|
||||
FindFilesToPrune(setFilesToPrune, chainparams.PruneAfterHeight());
|
||||
fCheckForPruning = false;
|
||||
|
|
@ -2502,7 +2502,7 @@ bool CChainState::FlushStateToDisk(
|
|||
return AbortNode(state, "Disk space is too low!", _("Error: Disk space is too low!").translated, CClientUIInterface::MSG_NOPREFIX);
|
||||
}
|
||||
{
|
||||
LOG_TIME_MILLIS("write block and undo data to disk", BCLog::BENCH);
|
||||
LOG_TIME_MILLIS_WITH_CATEGORY("write block and undo data to disk", BCLog::BENCH);
|
||||
|
||||
// First make sure all block and undo data is flushed to disk.
|
||||
FlushBlockFile();
|
||||
|
|
@ -2510,7 +2510,7 @@ bool CChainState::FlushStateToDisk(
|
|||
|
||||
// Then update all block file information (which may refer to block and undo files).
|
||||
{
|
||||
LOG_TIME_MILLIS("write block index to disk", BCLog::BENCH);
|
||||
LOG_TIME_MILLIS_WITH_CATEGORY("write block index to disk", BCLog::BENCH);
|
||||
|
||||
std::vector<std::pair<int, const CBlockFileInfo*> > vFiles;
|
||||
vFiles.reserve(setDirtyFileInfo.size());
|
||||
|
|
@ -2530,7 +2530,7 @@ bool CChainState::FlushStateToDisk(
|
|||
}
|
||||
// Finally remove any pruned files
|
||||
if (fFlushForPrune) {
|
||||
LOG_TIME_MILLIS("unlink pruned files", BCLog::BENCH);
|
||||
LOG_TIME_MILLIS_WITH_CATEGORY("unlink pruned files", BCLog::BENCH);
|
||||
|
||||
UnlinkPrunedFiles(setFilesToPrune);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue