summaryrefslogtreecommitdiff
path: root/src/discord/discord.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2023-12-27 02:28:55 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2023-12-27 02:28:55 -0500
commit15d94ba4ae53863df04e8200e04dcf65db0c0396 (patch)
tree973f95580dc3e5b0d9511be173329fe8c8c53f5d /src/discord/discord.cpp
parent155d95e29cc50a66cbe7711b172b195be637bc48 (diff)
downloadabaddon-portaudio-15d94ba4ae53863df04e8200e04dcf65db0c0396.tar.gz
abaddon-portaudio-15d94ba4ae53863df04e8200e04dcf65db0c0396.zip
fix more shutdown segfaults !
Diffstat (limited to 'src/discord/discord.cpp')
-rw-r--r--src/discord/discord.cpp8
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();