-- v2: taskschd: Remove unused function heap_strdupW. taskschd: Use standard C functions for memory allocation in task.c. taskschd: Use standard C functions for memory allocation in regtask.c. taskschd: Use standard C functions for memory allocation in folder_collection.c.
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/taskschd/folder_collection.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/taskschd/folder_collection.c b/dlls/taskschd/folder_collection.c index 41e3caca33f..578e3e653b6 100644 --- a/dlls/taskschd/folder_collection.c +++ b/dlls/taskschd/folder_collection.c @@ -72,8 +72,8 @@ static ULONG WINAPI folders_Release(ITaskFolderCollection *iface) { TRACE("destroying %p\n", iface); free_list(folders->list, folders->count); - heap_free(folders->path); - heap_free(folders); + free(folders->path); + free(folders); }
return ref; @@ -226,7 +226,7 @@ HRESULT TaskFolderCollection_create(const WCHAR *path, ITaskFolderCollection **o hr = SchRpcEnumFolders(path, 0, &start_index, 0, &count, &list); if (hr != S_OK) return hr;
- folders = heap_alloc(sizeof(*folders)); + folders = malloc(sizeof(*folders)); if (!folders) { free_list(list, count); @@ -235,9 +235,9 @@ HRESULT TaskFolderCollection_create(const WCHAR *path, ITaskFolderCollection **o
folders->ITaskFolderCollection_iface.lpVtbl = &TaskFolderCollection_vtbl; folders->ref = 1; - if (!(folders->path = heap_strdupW(path))) + if (!(folders->path = wcsdup(path))) { - heap_free(folders); + free(folders); free_list(list, count); return E_OUTOFMEMORY; } @@ -296,7 +296,7 @@ static ULONG WINAPI enumvar_Release(IEnumVARIANT *iface) { TRACE("destroying %p\n", iface); ITaskFolderCollection_Release(&enumvar->folders->ITaskFolderCollection_iface); - heap_free(enumvar); + free(enumvar); }
return ref; @@ -384,7 +384,7 @@ static HRESULT NewEnum_create(TaskFolderCollection *folders, IUnknown **obj) { EnumVARIANT *enumvar;
- enumvar = heap_alloc(sizeof(*enumvar)); + enumvar = malloc(sizeof(*enumvar)); if (!enumvar) return E_OUTOFMEMORY;
enumvar->IEnumVARIANT_iface.lpVtbl = &EnumVARIANT_vtbl;
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/taskschd/regtask.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/dlls/taskschd/regtask.c b/dlls/taskschd/regtask.c index 69bec19027c..bae0d4cb0b2 100644 --- a/dlls/taskschd/regtask.c +++ b/dlls/taskschd/regtask.c @@ -60,8 +60,8 @@ static ULONG WINAPI regtask_Release(IRegisteredTask *iface) { TRACE("destroying %p\n", iface); ITaskDefinition_Release(regtask->taskdef); - heap_free(regtask->path); - heap_free(regtask); + free(regtask->path); + free(regtask); }
return ref; @@ -328,10 +328,10 @@ HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, ITaskDefinit if (!full_name) return E_OUTOFMEMORY; }
- regtask = heap_alloc(sizeof(*regtask)); + regtask = malloc(sizeof(*regtask)); if (!regtask) { - heap_free(full_name); + free(full_name); return E_OUTOFMEMORY; }
@@ -344,15 +344,15 @@ HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, ITaskDefinit hr = ITaskDefinition_get_XmlText(definition, &xml); if (hr != S_OK || (hr = SchRpcRegisterTask(full_name, xml, flags, NULL, logon, 0, NULL, &actual_path, &error_info)) != S_OK) { - heap_free(full_name); - heap_free(regtask); + free(full_name); + free(regtask); SysFreeString(xml); return hr; } SysFreeString(xml);
- heap_free(full_name); - full_name = heap_strdupW(actual_path); + free(full_name); + full_name = wcsdup(actual_path); MIDL_user_free(actual_path); } else @@ -363,8 +363,8 @@ HRESULT RegisteredTask_create(const WCHAR *path, const WCHAR *name, ITaskDefinit hr = SchRpcRetrieveTask(full_name, L"", &count, &xml); if (hr != S_OK || (hr = ITaskDefinition_put_XmlText(definition, xml)) != S_OK) { - heap_free(full_name); - heap_free(regtask); + free(full_name); + free(regtask); MIDL_user_free(xml); return hr; } @@ -408,8 +408,8 @@ static ULONG WINAPI regtasks_Release(IRegisteredTaskCollection *iface) if (!ref) { TRACE("destroying %p\n", iface); - heap_free(regtasks->path); - heap_free(regtasks); + free(regtasks->path); + free(regtasks); }
return ref; @@ -499,12 +499,12 @@ HRESULT RegisteredTaskCollection_create(const WCHAR *path, IRegisteredTaskCollec { RegisteredTaskCollection *regtasks;
- regtasks = heap_alloc(sizeof(*regtasks)); + regtasks = malloc(sizeof(*regtasks)); if (!regtasks) return E_OUTOFMEMORY;
regtasks->IRegisteredTaskCollection_iface.lpVtbl = &RegisteredTaskCollection_vtbl; regtasks->ref = 1; - regtasks->path = heap_strdupW(path); + regtasks->path = wcsdup(path); *obj = ®tasks->IRegisteredTaskCollection_iface;
TRACE("created %p\n", *obj);
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/taskschd/task.c | 110 +++++++++++++++++++++---------------------- 1 file changed, 55 insertions(+), 55 deletions(-)
diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c index 28c0ff89945..b84d693dced 100644 --- a/dlls/taskschd/task.c +++ b/dlls/taskschd/task.c @@ -91,8 +91,8 @@ static ULONG WINAPI DailyTrigger_Release(IDailyTrigger *iface) if(!ref) { TRACE("destroying %p\n", iface); - heap_free(This->start_boundary); - heap_free(This); + free(This->start_boundary); + free(This); }
return ref; @@ -199,8 +199,8 @@ static HRESULT WINAPI DailyTrigger_put_StartBoundary(IDailyTrigger *iface, BSTR
TRACE("(%p)->(%s)\n", This, debugstr_w(start));
- if (start && !(str = heap_strdupW(start))) return E_OUTOFMEMORY; - heap_free(This->start_boundary); + if (start && !(str = wcsdup(start))) return E_OUTOFMEMORY; + free(This->start_boundary); This->start_boundary = str;
return S_OK; @@ -373,7 +373,7 @@ static ULONG WINAPI TriggerCollection_Release(ITriggerCollection *iface) TRACE("(%p) ref=%ld\n", This, ref);
if(!ref) - heap_free(This); + free(This);
return ref; } @@ -503,14 +503,14 @@ static ULONG WINAPI RegistrationInfo_Release(IRegistrationInfo *iface) if (!ref) { TRACE("destroying %p\n", iface); - heap_free(reginfo->description); - heap_free(reginfo->author); - heap_free(reginfo->version); - heap_free(reginfo->date); - heap_free(reginfo->documentation); - heap_free(reginfo->uri); - heap_free(reginfo->source); - heap_free(reginfo); + free(reginfo->description); + free(reginfo->author); + free(reginfo->version); + free(reginfo->date); + free(reginfo->documentation); + free(reginfo->uri); + free(reginfo->source); + free(reginfo); }
return ref; @@ -584,8 +584,8 @@ static HRESULT WINAPI RegistrationInfo_put_Description(IRegistrationInfo *iface,
TRACE("%p,%s\n", iface, debugstr_w(description));
- if (description && !(str = heap_strdupW(description))) return E_OUTOFMEMORY; - heap_free(reginfo->description); + if (description && !(str = wcsdup(description))) return E_OUTOFMEMORY; + free(reginfo->description); reginfo->description = str; return S_OK; } @@ -611,8 +611,8 @@ static HRESULT WINAPI RegistrationInfo_put_Author(IRegistrationInfo *iface, BSTR
TRACE("%p,%s\n", iface, debugstr_w(author));
- if (author && !(str = heap_strdupW(author))) return E_OUTOFMEMORY; - heap_free(reginfo->author); + if (author && !(str = wcsdup(author))) return E_OUTOFMEMORY; + free(reginfo->author); reginfo->author = str; return S_OK; } @@ -638,8 +638,8 @@ static HRESULT WINAPI RegistrationInfo_put_Version(IRegistrationInfo *iface, BST
TRACE("%p,%s\n", iface, debugstr_w(version));
- if (version && !(str = heap_strdupW(version))) return E_OUTOFMEMORY; - heap_free(reginfo->version); + if (version && !(str = wcsdup(version))) return E_OUTOFMEMORY; + free(reginfo->version); reginfo->version = str; return S_OK; } @@ -665,8 +665,8 @@ static HRESULT WINAPI RegistrationInfo_put_Date(IRegistrationInfo *iface, BSTR d
TRACE("%p,%s\n", iface, debugstr_w(date));
- if (date && !(str = heap_strdupW(date))) return E_OUTOFMEMORY; - heap_free(reginfo->date); + if (date && !(str = wcsdup(date))) return E_OUTOFMEMORY; + free(reginfo->date); reginfo->date = str; return S_OK; } @@ -692,8 +692,8 @@ static HRESULT WINAPI RegistrationInfo_put_Documentation(IRegistrationInfo *ifac
TRACE("%p,%s\n", iface, debugstr_w(doc));
- if (doc && !(str = heap_strdupW(doc))) return E_OUTOFMEMORY; - heap_free(reginfo->documentation); + if (doc && !(str = wcsdup(doc))) return E_OUTOFMEMORY; + free(reginfo->documentation); reginfo->documentation = str; return S_OK; } @@ -731,8 +731,8 @@ static HRESULT WINAPI RegistrationInfo_put_URI(IRegistrationInfo *iface, BSTR ur
TRACE("%p,%s\n", iface, debugstr_w(uri));
- if (uri && !(str = heap_strdupW(uri))) return E_OUTOFMEMORY; - heap_free(reginfo->uri); + if (uri && !(str = wcsdup(uri))) return E_OUTOFMEMORY; + free(reginfo->uri); reginfo->uri = str; return S_OK; } @@ -770,8 +770,8 @@ static HRESULT WINAPI RegistrationInfo_put_Source(IRegistrationInfo *iface, BSTR
TRACE("%p,%s\n", iface, debugstr_w(source));
- if (source && !(str = heap_strdupW(source))) return E_OUTOFMEMORY; - heap_free(reginfo->source); + if (source && !(str = wcsdup(source))) return E_OUTOFMEMORY; + free(reginfo->source); reginfo->source = str; return S_OK; } @@ -863,10 +863,10 @@ static ULONG WINAPI TaskSettings_Release(ITaskSettings *iface) if (!ref) { TRACE("destroying %p\n", iface); - heap_free(taskset->restart_interval); - heap_free(taskset->execution_time_limit); - heap_free(taskset->delete_expired_task_after); - heap_free(taskset); + free(taskset->restart_interval); + free(taskset->execution_time_limit); + free(taskset->delete_expired_task_after); + free(taskset); }
return ref; @@ -970,8 +970,8 @@ static HRESULT WINAPI TaskSettings_put_RestartInterval(ITaskSettings *iface, BST
TRACE("%p,%s\n", iface, debugstr_w(interval));
- if (interval && !(str = heap_strdupW(interval))) return E_OUTOFMEMORY; - heap_free(taskset->restart_interval); + if (interval && !(str = wcsdup(interval))) return E_OUTOFMEMORY; + free(taskset->restart_interval); taskset->restart_interval = str;
return S_OK; @@ -1184,8 +1184,8 @@ static HRESULT WINAPI TaskSettings_put_ExecutionTimeLimit(ITaskSettings *iface,
TRACE("%p,%s\n", iface, debugstr_w(limit));
- if (limit && !(str = heap_strdupW(limit))) return E_OUTOFMEMORY; - heap_free(taskset->execution_time_limit); + if (limit && !(str = wcsdup(limit))) return E_OUTOFMEMORY; + free(taskset->execution_time_limit); taskset->execution_time_limit = str;
return S_OK; @@ -1236,8 +1236,8 @@ static HRESULT WINAPI TaskSettings_put_DeleteExpiredTaskAfter(ITaskSettings *ifa
TRACE("%p,%s\n", iface, debugstr_w(delay));
- if (delay && !(str = heap_strdupW(delay))) return E_OUTOFMEMORY; - heap_free(taskset->delete_expired_task_after); + if (delay && !(str = wcsdup(delay))) return E_OUTOFMEMORY; + free(taskset->delete_expired_task_after); taskset->delete_expired_task_after = str;
return S_OK; @@ -1449,7 +1449,7 @@ static HRESULT TaskSettings_create(ITaskSettings **obj) taskset->ref = 1; /* set the defaults */ taskset->restart_interval = NULL; - taskset->execution_time_limit = heap_strdupW(L"PT72H"); + taskset->execution_time_limit = wcsdup(L"PT72H"); taskset->delete_expired_task_after = NULL; taskset->restart_count = 0; taskset->priority = 7; @@ -1498,7 +1498,7 @@ static ULONG WINAPI Principal_Release(IPrincipal *iface) if (!ref) { TRACE("destroying %p\n", iface); - heap_free(principal); + free(principal); }
return ref; @@ -1692,11 +1692,11 @@ static ULONG WINAPI ExecAction_Release(IExecAction *iface) if (!ref) { TRACE("destroying %p\n", iface); - heap_free(action->path); - heap_free(action->directory); - heap_free(action->args); - heap_free(action->id); - heap_free(action); + free(action->path); + free(action->directory); + free(action->args); + free(action->id); + free(action); }
return ref; @@ -1771,8 +1771,8 @@ static HRESULT WINAPI ExecAction_put_Id(IExecAction *iface, BSTR id)
TRACE("%p,%s\n", iface, debugstr_w(id));
- if (id && !(str = heap_strdupW((id)))) return E_OUTOFMEMORY; - heap_free(action->id); + if (id && !(str = wcsdup((id)))) return E_OUTOFMEMORY; + free(action->id); action->id = str;
return S_OK; @@ -1810,8 +1810,8 @@ static HRESULT WINAPI ExecAction_put_Path(IExecAction *iface, BSTR path)
TRACE("%p,%s\n", iface, debugstr_w(path));
- if (path && !(str = heap_strdupW((path)))) return E_OUTOFMEMORY; - heap_free(action->path); + if (path && !(str = wcsdup((path)))) return E_OUTOFMEMORY; + free(action->path); action->path = str;
return S_OK; @@ -1838,8 +1838,8 @@ static HRESULT WINAPI ExecAction_put_Arguments(IExecAction *iface, BSTR argument
TRACE("%p,%s\n", iface, debugstr_w(arguments));
- if (arguments && !(str = heap_strdupW((arguments)))) return E_OUTOFMEMORY; - heap_free(action->args); + if (arguments && !(str = wcsdup((arguments)))) return E_OUTOFMEMORY; + free(action->args); action->args = str;
return S_OK; @@ -1866,8 +1866,8 @@ static HRESULT WINAPI ExecAction_put_WorkingDirectory(IExecAction *iface, BSTR d
TRACE("%p,%s\n", iface, debugstr_w(directory));
- if (directory && !(str = heap_strdupW((directory)))) return E_OUTOFMEMORY; - heap_free(action->directory); + if (directory && !(str = wcsdup((directory)))) return E_OUTOFMEMORY; + free(action->directory); action->directory = str;
return S_OK; @@ -1939,7 +1939,7 @@ static ULONG WINAPI Actions_Release(IActionCollection *iface) if (!ref) { TRACE("destroying %p\n", iface); - heap_free(actions); + free(actions); }
return ref; @@ -2141,7 +2141,7 @@ static ULONG WINAPI TaskDefinition_Release(ITaskDefinition *iface) if (taskdef->actions) IActionCollection_Release(taskdef->actions);
- heap_free(taskdef); + free(taskdef); }
return ref; @@ -3708,7 +3708,7 @@ static ULONG WINAPI TaskService_Release(ITaskService *iface) if (!ref) { TRACE("destroying %p\n", iface); - heap_free(task_svc); + free(task_svc); }
return ref;
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/taskschd/taskschd_private.h | 10 ---------- 1 file changed, 10 deletions(-)
diff --git a/dlls/taskschd/taskschd_private.h b/dlls/taskschd/taskschd_private.h index accbc76afe4..e8d834edc3d 100644 --- a/dlls/taskschd/taskschd_private.h +++ b/dlls/taskschd/taskschd_private.h @@ -31,14 +31,4 @@ HRESULT RegisteredTaskCollection_create(const WCHAR *path, IRegisteredTaskCollec
WCHAR *get_full_path(const WCHAR *parent, const WCHAR *path) DECLSPEC_HIDDEN;
-static inline WCHAR *heap_strdupW(const WCHAR *src) -{ - WCHAR *dst; - unsigned len; - if (!src) return NULL; - len = (lstrlenW(src) + 1) * sizeof(WCHAR); - if ((dst = heap_alloc(len))) memcpy(dst, src, len); - return dst; -} - #endif /* __WINE_TASKSCHD_PRIVATE_H__ */
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=126563
Your paranoid android.
=== debian11 (32 bit report) ===
d3d8: stateblock: Timeout visual: Timeout
d3d9: d3d9ex: Timeout device: Timeout stateblock: Timeout visual: Timeout
d3dcompiler_43: asm: Timeout blob: Timeout hlsl_d3d11: Timeout hlsl_d3d9: Timeout reflection: Timeout
d3dcompiler_46: asm: Timeout blob: Timeout hlsl_d3d11: Timeout hlsl_d3d9: Timeout reflection: Timeout
d3dcompiler_47: asm: Timeout blob: Timeout hlsl_d3d11: Timeout hlsl_d3d9: Timeout reflection: Timeout
d3drm: d3drm: Timeout
Report validation errors: d3drm:vector timeout
=== debian11 (build log) ===
WineRunWineTest.pl:error: The task timed out