diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2023-12-27 02:28:55 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2023-12-27 02:28:55 -0500 |
commit | 15d94ba4ae53863df04e8200e04dcf65db0c0396 (patch) | |
tree | 973f95580dc3e5b0d9511be173329fe8c8c53f5d | |
parent | 155d95e29cc50a66cbe7711b172b195be637bc48 (diff) | |
download | abaddon-portaudio-15d94ba4ae53863df04e8200e04dcf65db0c0396.tar.gz abaddon-portaudio-15d94ba4ae53863df04e8200e04dcf65db0c0396.zip |
fix more shutdown segfaults !
-rw-r--r-- | src/discord/discord.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp index ac7e2f2..607fce3 100644 --- a/src/discord/discord.cpp +++ b/src/discord/discord.cpp @@ -24,14 +24,16 @@ DiscordClient::DiscordClient(bool mem_store) m_websocket.signal_close().connect(sigc::mem_fun(*this, &DiscordClient::HandleSocketClose)); #ifdef WITH_VOICE + // hack: tracking signal objects instead of ensuring m_voice doesnt emit during destruction m_voice.signal_connected().connect(sigc::mem_fun(*this, &DiscordClient::OnVoiceConnected)); - m_voice.signal_disconnected().connect(sigc::mem_fun(*this, &DiscordClient::OnVoiceDisconnected)); + m_voice.signal_disconnected().connect(sigc::track_obj(sigc::mem_fun(*this, &DiscordClient::OnVoiceDisconnected), m_signal_voice_disconnected)); m_voice.signal_speaking().connect([this](const VoiceSpeakingData &data) { m_signal_voice_speaking.emit(data); }); - m_voice.signal_state_update().connect([this](DiscordVoiceClient::State state) { + const auto signal_state_update_cb = [this](DiscordVoiceClient::State state) { m_signal_voice_client_state_update.emit(state); - }); + }; + m_voice.signal_state_update().connect(sigc::track_obj(signal_state_update_cb, m_signal_voice_client_state_update)); #endif LoadEventMap(); |