[PATCH 1/9] hhctrl.ocx: Implement HH_CLOSE_ALL (resend).

Jacek Caban jacek at codeweavers.com
Mon Jul 9 04:31:05 CDT 2012


On 07/09/12 02:13, Erich E. Hoover wrote:
> +    case HH_CLOSE_ALL: {
> +        struct list *ptr;
> +        HHInfo *info;
> +
> +        LIST_FOR_EACH(ptr, &window_list)
> +        {
> +            info = LIST_ENTRY(ptr, HHInfo, entry);
> +            TRACE("Destroying window %s.\n", debugstr_w(info->pszType));
> +            if (info->WinType.hwndHelp)
> +                DestroyWindow(info->WinType.hwndHelp);
> +            list_remove(&info->entry);
> +        }

How is it supposed to work? AFAICS you're destroying windows, removing
info object from the list and forget about it. If your intention is to
destroy these objects, then ReleaseHelpViewer seems more appropriate.
Also moving list_remove call to ReleaseHelpViewer seems preferable, so
that it's removed from the list regardless of the reason for being
destroyed. Same for list_add_tail, shouldn't it be done in CreateHelpViewer?

Jacek



More information about the wine-devel mailing list