From: Steinar H. Gunderson Date: Thu, 8 Oct 2015 17:48:21 +0000 (+0200) Subject: Fix a crash on exit. X-Git-Tag: 1.0.0~265 X-Git-Url: https://git.sesse.net/?p=nageru;a=commitdiff_plain;h=0d8bf7e55ec28eef5d46ac2920d0de5b04534ff3 Fix a crash on exit. --- diff --git a/main.cpp b/main.cpp index a3c3334..2b5dc06 100644 --- a/main.cpp +++ b/main.cpp @@ -36,5 +36,6 @@ int main(int argc, char *argv[]) int rc = app.exec(); global_mixer->quit(); + delete global_mixer; return rc; } diff --git a/mixer.cpp b/mixer.cpp index 4d69e5c..8c7a25b 100644 --- a/mixer.cpp +++ b/mixer.cpp @@ -413,6 +413,16 @@ void Mixer::transition_clicked(int transition_num) theme->transition_clicked(transition_num, frame / 60.0); } +Mixer::OutputChannel::~OutputChannel() +{ + if (has_current_frame) { + parent->release_display_frame(¤t_frame); + } + if (has_ready_frame) { + parent->release_display_frame(&ready_frame); + } +} + void Mixer::OutputChannel::output_frame(DisplayFrame frame) { // Store this frame for display. Remove the ready frame if any diff --git a/mixer.h b/mixer.h index 97bae30..de95eef 100644 --- a/mixer.h +++ b/mixer.h @@ -116,6 +116,7 @@ private: class OutputChannel { public: + ~OutputChannel(); void output_frame(DisplayFrame frame); bool get_display_frame(DisplayFrame *frame); void set_frame_ready_callback(new_frame_ready_callback_t callback);