diff options
-rw-r--r-- | src/libs/nanotrace/nanotracehr.h | 32 | ||||
-rw-r--r-- | src/libs/sqlite/sqlitebasestatement.cpp | 5 | ||||
-rw-r--r-- | src/plugins/qmldesigner/designercore/tracing/qmldesignertracing.cpp | 15 |
3 files changed, 23 insertions, 29 deletions
diff --git a/src/libs/nanotrace/nanotracehr.h b/src/libs/nanotrace/nanotracehr.h index d59073ede5..454ebec12a 100644 --- a/src/libs/nanotrace/nanotracehr.h +++ b/src/libs/nanotrace/nanotracehr.h @@ -239,16 +239,16 @@ void convertToString(String &string, const Container<Arguments...> &container) template<typename String, typename... Arguments> String toArguments(Arguments &&...arguments) { - String text; - constexpr auto argumentCount = sizeof...(Arguments); - text.append("{"); - (convertDictonaryEntryToString(text, arguments), ...); - if (argumentCount) - text.pop_back(); + String text; + constexpr auto argumentCount = sizeof...(Arguments); + text.append("{"); + (convertDictonaryEntryToString(text, arguments), ...); + if (argumentCount) + text.pop_back(); - text.append("}"); + text.append("}"); - return text; + return text; } inline std::string_view toArguments(std::string_view arguments) @@ -501,33 +501,29 @@ extern template class NANOTRACE_EXPORT EventQueue<StringTraceEvent, Tracing::IsE extern template class NANOTRACE_EXPORT EventQueue<StringViewWithStringArgumentsTraceEvent, Tracing::IsEnabled>; template<typename TraceEvent, std::size_t eventCount, Tracing isEnabled> -class EventQueueData +class EventQueueData : public EventQueue<TraceEvent, isEnabled> { public: using IsActive = std::true_type; EventQueueData(TraceFile<Tracing::IsDisabled> &) {} - - EventQueue<TraceEvent, Tracing::IsDisabled> createEventQueue() { return {}; } }; template<typename TraceEvent, std::size_t eventCount> class EventQueueData<TraceEvent, eventCount, Tracing::IsEnabled> + : public EventQueue<TraceEvent, Tracing::IsEnabled> { using TraceEvents = std::array<TraceEvent, eventCount>; + using Base = EventQueue<TraceEvent, Tracing::IsEnabled>; public: using IsActive = std::true_type; EventQueueData(EnabledTraceFile &file) - : file{file} + : Base{&file, eventsOne, eventsTwo} + , file{file} {} - EventQueue<TraceEvent, Tracing::IsEnabled> createEventQueue() - { - return {&file, eventsOne, eventsTwo}; - } - EnabledTraceFile &file; TraceEvents eventsOne; TraceEvents eventsTwo; @@ -572,6 +568,7 @@ public: BasicEnabledToken &operator=(const BasicEnabledToken &) = default; BasicEnabledToken(BasicEnabledToken &&other) noexcept = default; BasicEnabledToken &operator=(BasicEnabledToken &&other) noexcept = default; + ~BasicEnabledToken() {} constexpr explicit operator bool() const { return false; } @@ -783,7 +780,6 @@ public: static constexpr bool categoryIsActive() { return Category::isActive(); } }; - using DisabledAsynchronousToken = AsynchronousToken<StringViewCategory<Tracing::IsDisabled>, Tracing::IsDisabled>; diff --git a/src/libs/sqlite/sqlitebasestatement.cpp b/src/libs/sqlite/sqlitebasestatement.cpp index 406d49d248..23466c0cea 100644 --- a/src/libs/sqlite/sqlitebasestatement.cpp +++ b/src/libs/sqlite/sqlitebasestatement.cpp @@ -33,12 +33,11 @@ TraceFile traceFile{"sqlite.json"}; thread_local NanotraceHR::EventQueueData<NanotraceHR::StringViewTraceEvent, 10000, sqliteTracingStatus()> eventQueueData(traceFile); -thread_local NanotraceHR::EventQueue eventQueue = eventQueueData.createEventQueue(); NanotraceHR::StringViewCategory<sqliteTracingStatus()> &sqliteLowLevelCategory(); thread_local NanotraceHR::StringViewCategory<sqliteTracingStatus()> sqliteLowLevelCategory_{ - "sqlite low level"_t, eventQueue, sqliteLowLevelCategory}; + "sqlite low level"_t, eventQueueData, sqliteLowLevelCategory}; NanotraceHR::StringViewCategory<sqliteTracingStatus()> &sqliteLowLevelCategory() { @@ -46,7 +45,7 @@ NanotraceHR::StringViewCategory<sqliteTracingStatus()> &sqliteLowLevelCategory() } thread_local NanotraceHR::StringViewCategory<sqliteTracingStatus()> sqliteHighLevelCategory_{ - "sqlite high level"_t, eventQueue, sqliteHighLevelCategory}; + "sqlite high level"_t, eventQueueData, sqliteHighLevelCategory}; } // namespace NanotraceHR::StringViewCategory<sqliteTracingStatus()> &sqliteHighLevelCategory() diff --git a/src/plugins/qmldesigner/designercore/tracing/qmldesignertracing.cpp b/src/plugins/qmldesigner/designercore/tracing/qmldesignertracing.cpp index 2b3700c260..c23ebc2e3c 100644 --- a/src/plugins/qmldesigner/designercore/tracing/qmldesignertracing.cpp +++ b/src/plugins/qmldesigner/designercore/tracing/qmldesignertracing.cpp @@ -12,23 +12,20 @@ using TraceFile = NanotraceHR::TraceFile<tracingStatus()>; TraceFile traceFile{"qml_designer.json"}; thread_local NanotraceHR::EventQueueData<NanotraceHR::StringViewTraceEvent, 10000, tracingStatus()> - strinViewEventQueueData(traceFile); -thread_local NanotraceHR::EventQueue stringViewEventQueue_ = strinViewEventQueueData.createEventQueue(); + stringViewEventQueueData(traceFile); thread_local NanotraceHR::EventQueueData<NanotraceHR::StringViewWithStringArgumentsTraceEvent, 1000, tracingStatus()> stringViewWithStringArgumentsEventQueueData(traceFile); -thread_local NanotraceHR::EventQueue stringViewEventWithStringArgumentsQueue_ = stringViewWithStringArgumentsEventQueueData - .createEventQueue(); } // namespace -[[gnu::pure]] EventQueue &eventQueue() +EventQueue &eventQueue() { - return stringViewEventQueue_; + return stringViewEventQueueData; } EventQueueWithStringArguments &eventQueueWithStringArguments() { - return stringViewEventWithStringArgumentsQueue_; + return stringViewWithStringArgumentsEventQueueData; } } // namespace Tracing @@ -37,7 +34,9 @@ namespace ModelTracing { namespace { using namespace NanotraceHR::Literals; -thread_local Category category_{"model"_t, Tracing::stringViewEventWithStringArgumentsQueue_, category}; +thread_local Category category_{"model"_t, + Tracing::stringViewWithStringArgumentsEventQueueData, + category}; } // namespace |