Skip to content

Commit 5086ed5

Browse files
committed
Fix memleak in GUI (clap and vst)
1 parent 498f629 commit 5086ed5

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

NeuralRack/clap/NeuralRack.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,10 @@ class NeuralRack
142142
widget_hide(TopWin);
143143
firstLoop = false;
144144
}
145+
146+
void quitMain() {
147+
main_quit(&ui->main);
148+
}
145149

146150
void quitGui() {
147151
fetch.stop();

NeuralRack/clap/NeuralRackClap.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,10 @@ static bool neuralrack_gui_create(const clap_plugin *plugin, const char *api, bo
284284

285285
static void neuralrack_gui_destroy(const clap_plugin *plugin) {
286286
neuralrack_plugin_t *plug = (neuralrack_plugin_t *)plugin->plugin_data;
287-
if (plug->guiIsCreated) plug->r->cleanup();
287+
if (plug->guiIsCreated) {
288+
plug->r->cleanup();
289+
plug->r->quitMain();
290+
}
288291
plug->r->quitGui();
289292
plug->guiIsCreated = false;
290293
}

NeuralRack/vst2/NeuralRackvst.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,10 @@ static intptr_t dispatcher(AEffect* effect, int32_t opCode, int32_t index, intpt
144144
break;
145145
}
146146
case effEditClose: {
147-
if (plug->guiIsCreated) plug->r->cleanup();
147+
if (plug->guiIsCreated) {
148+
plug->r->cleanup();
149+
plug->r->quitMain();
150+
}
148151
plug->r->quitGui();
149152
plug->guiIsCreated = false;
150153
break;

0 commit comments

Comments
 (0)