diff --git a/profiler/src/main.cpp b/profiler/src/main.cpp index 1afa3d29..5db0b3b0 100644 --- a/profiler/src/main.cpp +++ b/profiler/src/main.cpp @@ -102,7 +102,7 @@ int main( int argc, char** argv ) tracy::flat_hash_map clients; std::unique_ptr view; - int badVer = 0; + tracy::BadVersionState badVer; if( argc == 2 ) { @@ -477,19 +477,20 @@ int main( int argc, char** argv ) } catch( const tracy::UnsupportedVersion& e ) { - badVer = e.version; + badVer.state = tracy::BadVersionState::UnsupportedVersion; + badVer.version = e.version; } } ); } } catch( const tracy::NotTracyDump& ) { - badVer = -1; + badVer.state = tracy::BadVersionState::BadFile; } } } - if( badVer != 0 ) + if( badVer.state != tracy::BadVersionState::Ok ) { if( loadThread.joinable() ) { loadThread.join(); } tracy::BadVersion( badVer ); diff --git a/server/TracyBadVersion.cpp b/server/TracyBadVersion.cpp index b4a8f81b..aa9667a9 100644 --- a/server/TracyBadVersion.cpp +++ b/server/TracyBadVersion.cpp @@ -10,29 +10,33 @@ namespace tracy namespace detail { -void BadVersionImpl( int& badVer ) +void BadVersionImpl( BadVersionState& badVer ) { - assert( badVer != 0 ); + assert( badVer.state != BadVersionState::Ok ); - if( badVer > 0 ) - { - ImGui::OpenPopup( "Unsupported file version" ); - } - else + switch( badVer.state ) { + case BadVersionState::BadFile: ImGui::OpenPopup( "Bad file" ); + break; + case BadVersionState::UnsupportedVersion: + ImGui::OpenPopup( "Unsupported file version" ); + break; + default: + assert( false ); + break; } if( ImGui::BeginPopupModal( "Unsupported file version", nullptr, ImGuiWindowFlags_AlwaysAutoResize ) ) { #ifdef TRACY_EXTENDED_FONT TextCentered( ICON_FA_CLOUD_DOWNLOAD_ALT ); #endif - ImGui::Text( "The file you are trying to open is unsupported.\nYou should update to tracy %i.%i.%i or newer and try again.", badVer >> 16, ( badVer >> 8 ) & 0xFF, badVer & 0xFF ); + ImGui::Text( "The file you are trying to open is unsupported.\nYou should update to tracy %i.%i.%i or newer and try again.", badVer.version >> 16, ( badVer.version >> 8 ) & 0xFF, badVer.version & 0xFF ); ImGui::Separator(); if( ImGui::Button( "I understand" ) ) { ImGui::CloseCurrentPopup(); - badVer = 0; + badVer.state = BadVersionState::Ok; } ImGui::EndPopup(); } @@ -46,7 +50,7 @@ void BadVersionImpl( int& badVer ) if( ImGui::Button( "Oops" ) ) { ImGui::CloseCurrentPopup(); - badVer = 0; + badVer.state = BadVersionState::Ok; } ImGui::EndPopup(); } diff --git a/server/TracyBadVersion.hpp b/server/TracyBadVersion.hpp index 608e865d..530242e9 100644 --- a/server/TracyBadVersion.hpp +++ b/server/TracyBadVersion.hpp @@ -6,12 +6,25 @@ namespace tracy { +struct BadVersionState +{ + enum State + { + Ok, + BadFile, + UnsupportedVersion + }; + + State state = Ok; + int version = 0; +}; + namespace detail { -void BadVersionImpl( int& badVer ); +void BadVersionImpl( BadVersionState& badVer ); } -tracy_force_inline void BadVersion( int& badVer ) { if( badVer != 0 ) detail::BadVersionImpl( badVer ); } +tracy_force_inline void BadVersion( BadVersionState& badVer ) { if( badVer.state != BadVersionState::Ok ) detail::BadVersionImpl( badVer ); } } diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 3355ab88..1a44aa9a 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -7297,14 +7297,15 @@ void View::DrawCompare() } catch( const tracy::UnsupportedVersion& e ) { - m_compare.badVer = e.version; + m_compare.badVer.state = BadVersionState::UnsupportedVersion; + m_compare.badVer.version = e.version; } } ); } } catch( const tracy::NotTracyDump& ) { - m_compare.badVer = -1; + m_compare.badVer.state = BadVersionState::BadFile; } } } diff --git a/server/TracyView.hpp b/server/TracyView.hpp index 0ca91d55..19d56e21 100644 --- a/server/TracyView.hpp +++ b/server/TracyView.hpp @@ -457,7 +457,7 @@ private: std::unique_ptr second; std::unique_ptr userData; std::thread loadThread; - int badVer = 0; + BadVersionState badVer; char pattern[1024] = {}; std::vector match[2]; int selMatch[2] = { 0, 0 };