From bcffa12484e311e18f8ef191673028172e05b130 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Thu, 26 May 2011 17:01:51 +0200 Subject: [PATCH] shdocvw: Abort pending tasks on DocHost destruction. --- dlls/shdocvw/dochost.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dlls/shdocvw/dochost.c b/dlls/shdocvw/dochost.c index 407bbf90133..97e5f77572f 100644 --- a/dlls/shdocvw/dochost.c +++ b/dlls/shdocvw/dochost.c @@ -62,6 +62,16 @@ LRESULT process_dochost_tasks(DocHost *This) return 0; } +static void abort_dochost_tasks(DocHost *This) +{ + task_header_t *task, *cursor; + + LIST_FOR_EACH_ENTRY_SAFE(task, cursor, &This->task_queue, task_header_t, entry) { + list_remove(&task->entry); + task->destr(task); + } +} + static void notif_complete(DocHost *This, DISPID dispid) { DISPPARAMS dispparams; @@ -876,6 +886,7 @@ void DocHost_Init(DocHost *This, IDispatch *disp, const IDocHostContainerVtbl* c void DocHost_Release(DocHost *This) { + abort_dochost_tasks(This); release_dochost_client(This); DocHost_ClientSite_Release(This);