riched20: Avoid releasing a non-existent interface.

Nikolay Sivov bunglehead at gmail.com
Wed Apr 16 05:59:12 CDT 2014


> -        This->txtSel->reOle = NULL;
> -        ITextSelection_Release(&This->txtSel->ITextSelection_iface);
> -        IOleClientSite_Release(&This->clientSite->IOleClientSite_iface);
> +        if(This->txtSel)
> +          {
> +            This->txtSel->reOle = NULL;
> +            ITextSelection_Release(&This->txtSel->ITextSelection_iface);
> +          }
> +        if(This->clientSite)
> +          {
> +            This->clientSite->reOle = NULL;
> +            IOleClientSite_Release(&This->clientSite->IOleClientSite_iface);
> +          }
>           heap_fr
This can't happen.

>       IOleClientSiteImpl *This = impl_from_IOleClientSite(iface);
>       ULONG ref = InterlockedDecrement(&This->ref);
>       if (ref == 0)
> +      {
> +        if(This->reOle)
> +          This->reOle->clientSite = NULL;
>           heap_free(This);
> +      }
>       return ref;
Why do you need this?



More information about the wine-devel mailing list