Jacek Caban : shdocvw: Abort pending tasks on DocHost destruction.

Alexandre Julliard julliard at winehq.org
Thu May 26 10:56:29 CDT 2011


Module: wine
Branch: master
Commit: bcffa12484e311e18f8ef191673028172e05b130
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bcffa12484e311e18f8ef191673028172e05b130

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu May 26 17:01:51 2011 +0200

shdocvw: Abort pending tasks on DocHost destruction.

---

 dlls/shdocvw/dochost.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/dlls/shdocvw/dochost.c b/dlls/shdocvw/dochost.c
index 407bbf9..97e5f77 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);
 




More information about the wine-cvs mailing list