Upstream: yes https://github.com/stepmania/stepmania/commit/3f64564dd7c62a2f3d9557c1bdb8475fd953abea --- a/src/MessageManager.cpp +++ b/src/MessageManager.cpp @@ -207,8 +207,7 @@ void MessageManager::Unsubscribe( IMessageSubscriber* pSubscriber, MessageID m ) void MessageManager::Broadcast( Message &msg ) const { - // GAMESTATE is created before MESSAGEMAN, and has several BroadcastOnChangePtr members, so they all broadcast when they're initialized. - if(this != NULL && m_Logging) + if(m_Logging) { LOG->Trace("MESSAGEMAN:Broadcast: %s", msg.GetName().c_str()); } --- a/src/StepMania.cpp +++ b/src/StepMania.cpp @@ -1041,8 +1041,10 @@ int sm_main(int argc, char* argv[]) // This needs PREFSMAN. Dialog::Init(); - // Create game objects + // Set up the messaging system early to have well defined code. + MESSAGEMAN = new MessageManager; + // Create game objects GAMESTATE = new GameState; // This requires PREFSMAN, for PREFSMAN->m_bShowLoadingWindow. @@ -1162,7 +1164,6 @@ int sm_main(int argc, char* argv[]) SONGMAN->UpdatePopular(); SONGMAN->UpdatePreferredSort(); NSMAN = new NetworkSyncManager( pLoadingWindow ); - MESSAGEMAN = new MessageManager; STATSMAN = new StatsManager; // Initialize which courses are ranking courses here.