]> granicus.if.org Git - vim/commitdiff
patch 8.1.1944: leaking memory when using sound callback v8.1.1944
authorBram Moolenaar <Bram@vim.org>
Fri, 30 Aug 2019 14:30:00 +0000 (16:30 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 30 Aug 2019 14:30:00 +0000 (16:30 +0200)
Problem:    Leaking memory when using sound callback.
Solution:   src/sound.c

src/sound.c
src/version.c

index 69bbc5e6d91f48d7d916fbf141ab53ad5b218bdd..11170afb7ca0fa553d4eb338e96460e149af3bbf 100644 (file)
@@ -171,6 +171,7 @@ invoke_sound_callback(void)
        clear_tv(&rettv);
 
        delete_sound_callback(scb->scb_callback);
+       vim_free(scb);
     }
     redraw_after_callback(TRUE);
 }
@@ -263,10 +264,21 @@ f_sound_clear(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
     void
 sound_free(void)
 {
+    soundcb_queue_T *scb;
+
     if (context != NULL)
        ca_context_destroy(context);
+
     while (first_callback != NULL)
        delete_sound_callback(first_callback);
+
+    while (callback_queue != NULL)
+    {
+       scb = callback_queue;
+       callback_queue = scb->scb_next;
+       delete_sound_callback(scb->scb_callback);
+       vim_free(scb);
+    }
 }
 # endif
 
index 4f0018fa07b2ed39b2461b777cdae7af88c8c8bf..71901c9c254485a4793485534de865bfb7239410 100644 (file)
@@ -761,6 +761,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1944,
 /**/
     1943,
 /**/