[PATCH 0/3] MR1466: taskschd: Remove function heap_strdupW.
From: Alex Henrie <alexhenrie24(a)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); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1466
From: Alex Henrie <alexhenrie24(a)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; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1466
From: Alex Henrie <alexhenrie24(a)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__ */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1466
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 full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=126527 Your paranoid android. === debian11 (build log) === /home/winetest/tools/testbot/var/wine-win32/../wine/dlls/taskschd/folder_collection.c:238: undefined reference to `heap_strdupW' collect2: error: ld returned 1 exit status Task: The win32 Wine build failed === debian11b (build log) === /home/winetest/tools/testbot/var/wine-wow64/../wine/dlls/taskschd/folder_collection.c:238: undefined reference to `heap_strdupW' collect2: error: ld returned 1 exit status Task: The wow64 Wine build failed
participants (3)
-
Alex Henrie -
Alex Henrie (@alexhenrie) -
Marvin