Esme Povirk (@madewokherd) commented about dlls/shell32/shlfileop.c:
static ULONG WINAPI file_operation_Release(IFileOperation *iface) { struct file_operations *operations = impl_from_IFileOperation(iface);
struct file_operation *ptr, *next; ULONG ref = InterlockedDecrement(&operations->ref);
TRACE("(%p): ref=%lu.\n", iface, ref);
if (!ref) {
LIST_FOR_EACH_ENTRY_SAFE( ptr, next, &operations->ops, struct file_operation, entry )
{
if (ptr->pFrom) free((void*)ptr->pFrom);
if (ptr->pTo) free((void*)ptr->pTo);
if (ptr->pNewName) free((void*)ptr->pNewName);
if (ptr->pTemplateName) free((void*)ptr->pTemplateName);
These if statements and `(void*)` casts should not be needed.