[PATCH v2 3/4] dmime: Free list when Tempo track is destroyed.
From: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- v2: Avoid LPJUNK style types dlls/dmime/tempotrack.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/dlls/dmime/tempotrack.c b/dlls/dmime/tempotrack.c index 1ee6c5ac78..7aff40dbfd 100644 --- a/dlls/dmime/tempotrack.c +++ b/dlls/dmime/tempotrack.c @@ -21,6 +21,8 @@ #include "dmime_private.h" #include "dmobject.h" +#include "wine/heap.h" + WINE_DEFAULT_DEBUG_CHANNEL(dmime); WINE_DECLARE_DEBUG_CHANNEL(dmfile); @@ -82,7 +84,17 @@ static ULONG WINAPI tempo_track_Release(IDirectMusicTrack8 *iface) TRACE("(%p) ref=%d\n", This, ref); if (!ref) { - HeapFree(GetProcessHeap(), 0, This); + struct list *cursor, *cursor2; + DMUS_PRIVATE_TEMPO_ITEM *item; + + LIST_FOR_EACH_SAFE(cursor, cursor2, &This->Items) { + item = LIST_ENTRY(cursor, DMUS_PRIVATE_TEMPO_ITEM, entry); + list_remove(cursor); + + heap_free(item); + } + + heap_free(This); DMIME_UnlockModule(); } -- 2.20.1
participants (1)
-
Michael Stefaniuc