[4/6] taskschd: Make ITaskDefinition a part of IRegisteredTask implementation.

Dmitry Timoshkov dmitry at baikal.ru
Tue Feb 18 21:13:03 CST 2014


---
 dlls/taskschd/regtask.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/dlls/taskschd/regtask.c b/dlls/taskschd/regtask.c
index 7ed3c2a..b7eea52 100644
--- a/dlls/taskschd/regtask.c
+++ b/dlls/taskschd/regtask.c
@@ -37,6 +37,7 @@ typedef struct
     IRegisteredTask IRegisteredTask_iface;
     LONG ref;
     WCHAR *path;
+    ITaskDefinition *taskdef;
 } RegisteredTask;
 
 static inline RegisteredTask *impl_from_IRegisteredTask(IRegisteredTask *iface)
@@ -58,6 +59,7 @@ static ULONG WINAPI regtask_Release(IRegisteredTask *iface)
     if (!ref)
     {
         TRACE("destroying %p\n", iface);
+        ITaskDefinition_Release(regtask->taskdef);
         heap_free(regtask->path);
         heap_free(regtask);
     }
@@ -262,6 +264,8 @@ HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, ITaskDefinit
     regtask->IRegisteredTask_iface.lpVtbl = &RegisteredTask_vtbl;
     regtask->path = heap_strdupW(path);
     regtask->ref = 1;
+    ITaskDefinition_AddRef(definition);
+    regtask->taskdef = definition;
     *obj = &regtask->IRegisteredTask_iface;
 
     TRACE("created %p\n", *obj);
-- 
1.8.5.5




More information about the wine-patches mailing list