diff --git a/NEWS b/NEWS index b680adc8..cc7c0f27 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,7 @@ v0.x.x (xxxx-xx-xx) - Improved function matching algorithm in compare traces view. - Added minimal CMake integration layer. - Reworked rpmalloc initialization. +- Fixed display of messages with newlines on messages list. - Excluded some uninteresting wrapper functions from call stacks (for example SIMD pass-through intrinsics to the compiler built-ins). - Adjusted coloring of instruction hotness in symbol view. diff --git a/client/TracyAlloc.cpp b/client/TracyAlloc.cpp index eb94dd8d..0106a01a 100644 --- a/client/TracyAlloc.cpp +++ b/client/TracyAlloc.cpp @@ -3,15 +3,17 @@ #include #include "../common/TracyAlloc.hpp" +#include "../common/TracyForceInline.hpp" #include "../common/TracyYield.hpp" namespace tracy { +extern thread_local bool RpThreadInitDone; extern std::atomic RpInitDone; extern std::atomic RpInitLock; -TRACY_API void InitRpmallocPlumbing() +tracy_no_inline static void InitRpmallocPlumbing() { const auto done = RpInitDone.load( std::memory_order_acquire ); if( !done ) @@ -30,6 +32,11 @@ TRACY_API void InitRpmallocPlumbing() RpThreadInitDone = true; } +TRACY_API void InitRpmalloc() +{ + if( !RpThreadInitDone ) InitRpmallocPlumbing(); +} + } #endif diff --git a/common/TracyAlloc.hpp b/common/TracyAlloc.hpp index 6f9c9d7f..d3dec12b 100644 --- a/common/TracyAlloc.hpp +++ b/common/TracyAlloc.hpp @@ -13,13 +13,7 @@ namespace tracy { #ifdef TRACY_ENABLE -extern thread_local bool RpThreadInitDone; -TRACY_API void InitRpmallocPlumbing(); - -static tracy_force_inline void InitRpmalloc() -{ - if( !RpThreadInitDone ) InitRpmallocPlumbing(); -} +TRACY_API void InitRpmalloc(); #endif static inline void* tracy_malloc( size_t size ) diff --git a/server/TracyView.cpp b/server/TracyView.cpp index f7122bc4..a7a9443a 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -9476,10 +9476,12 @@ void View::DrawMessageLine( const MessageData& msg, bool hasCallstack, int& idx ImGui::SameLine(); ImGui::TextDisabled( "(%s)", RealToString( tid ) ); ImGui::TableNextColumn(); + auto tend = text; + while( *tend != '\0' && *tend != '\n' ) tend++; ImGui::PushStyleColor( ImGuiCol_Text, msg.color ); const auto cw = ImGui::GetContentRegionAvail().x; - const auto tw = ImGui::CalcTextSize( text ).x; - ImGui::TextUnformatted( text ); + const auto tw = ImGui::CalcTextSize( text, tend ).x; + ImGui::TextUnformatted( text, tend ); if( tw > cw && ImGui::IsItemHovered() ) { ImGui::SetNextWindowSize( ImVec2( 1000, 0 ) );