mackie: fix crash when using thread-local tempo map

TempoMap::use() assumes the thread_local pointer has been set up. This
is not the case for the control protocol event loop, so call ::fetch()
instead which does not require this assumption (and sets the thread_local
pointer too, though nothing else in the Mackie code uses it)
This commit is contained in:
Paul Davis 2022-02-09 09:57:52 -07:00
parent e3e7f587bd
commit e77e3b35b8

View File

@ -1,4 +1,4 @@
/*
x1/*
* Copyright (C) 2006-2007 John Anderson
* Copyright (C) 2007-2010 David Robillard <d@drobilla.net>
* Copyright (C) 2007-2017 Paul Davis <paul@linuxaudiosystems.com>
@ -1157,7 +1157,7 @@ MackieControlProtocol::format_bbt_timecode (samplepos_t now_sample)
{
Temporal::BBT_Time bbt_time;
bbt_time = Temporal::TempoMap::use()->bbt_at (timepos_t (now_sample));
bbt_time = Temporal::TempoMap::fetch()->bbt_at (timepos_t (now_sample));
// The Mackie protocol spec is built around a BBT time display of
//