diff --git a/src/tracks/playabletrack/ui/PlayableTrackControls.cpp b/src/tracks/playabletrack/ui/PlayableTrackControls.cpp index 1e4e3cc0b..03879066e 100644 --- a/src/tracks/playabletrack/ui/PlayableTrackControls.cpp +++ b/src/tracks/playabletrack/ui/PlayableTrackControls.cpp @@ -195,13 +195,14 @@ void PlayableTrackControls::GetMuteSoloRect } +#include const TCPLines& PlayableTrackControls::StaticTCPLines() { - static const struct PlayableTrackTCPLines - : TCPLines { PlayableTrackTCPLines() { - (TCPLines&)*this = - CommonTrackControls::StaticTCPLines(); - insert( end(), { + static TCPLines playableTrackTCPLines; + static std::once_flag flag; + std::call_once( flag, []{ + playableTrackTCPLines = CommonTrackControls::StaticTCPLines(); + playableTrackTCPLines.insert( playableTrackTCPLines.end(), { #ifdef EXPERIMENTAL_DA // DA: Has Mute and Solo on separate lines. { TCPLine::kItemMute, kTrackInfoBtnSize + 1, 1, @@ -214,6 +215,6 @@ const TCPLines& PlayableTrackControls::StaticTCPLines() #endif } ); - } } playableTrackTCPLines; + } ); return playableTrackTCPLines; }