[PATCH] d3dx9: Implement ID3DXSkinInfo_Clone.

Nikolay Sivov nsivov at codeweavers.com
Sun Jun 14 08:04:06 CDT 2020


On 6/14/20 3:56 PM, Gijs Vermeulen wrote:
> +    if (FAILED(hr = D3DXCreateSkinInfo(skin->num_vertices, skin->vertex_declaration, skin->num_bones, skin_info)))
> +        return hr;
> +
> +    for (i = 0; i < skin->num_bones; ++i)
> +    {
> +        struct bone *current_bone = &skin->bones[i];
> +
> +        if (current_bone->name && FAILED(hr = (*skin_info)->lpVtbl->SetBoneName(*skin_info, i, current_bone->name)))
> +            return hr;
> +        if (&current_bone->transform
> +                && FAILED(hr = (*skin_info)->lpVtbl->SetBoneOffsetMatrix(*skin_info, i, &current_bone->transform)))
> +            return hr;
> +        if (current_bone->vertices && current_bone->weights
> +                && FAILED(hr = (*skin_info)->lpVtbl->SetBoneInfluence(*skin_info, i, current_bone->num_influences,
> +                            current_bone->vertices, current_bone->weights)))
> +            return hr;
> +    }
> +
> +    return hr;
Hi, Gijs.

This will leak your partially initialized object on error paths.



More information about the wine-devel mailing list