Audio/MidiJack: Fix invalid read: (3) of #5408
This atomically unsets the MidiJack reference in AudioJack right before MidiJack is destroyed. This avoids AudioJack using a destroyed MidiJack object.
This commit is contained in:
committed by
Johannes Lorenz
parent
9e9c5acc17
commit
e3cae80580
@@ -58,6 +58,7 @@ public:
|
||||
// the jack callback is handled here, we call the midi client so that it can read
|
||||
// it's midi data during the callback
|
||||
AudioJack * addMidiClient(MidiJack *midiClient);
|
||||
void removeMidiClient(void) { m_midiClient = nullptr; }
|
||||
jack_client_t * jackClient() {return m_client;};
|
||||
|
||||
inline static QString name()
|
||||
@@ -109,7 +110,7 @@ private:
|
||||
bool m_active;
|
||||
std::atomic<bool> m_stopped;
|
||||
|
||||
MidiJack *m_midiClient;
|
||||
std::atomic<MidiJack *> m_midiClient;
|
||||
QVector<jack_port_t *> m_outputPorts;
|
||||
jack_default_audio_sample_t * * m_tempOutBufs;
|
||||
surroundSampleFrame * m_outBuf;
|
||||
|
||||
Reference in New Issue
Block a user