[PATCH 5/7] d3dx9: Fail effect creation when shader parameter evaluator creation fails.
Paul Gofman
gofmanp at gmail.com
Tue Jul 11 03:26:39 CDT 2017
On 07/10/2017 11:47 PM, Matteo Bruni wrote:
> 2017-07-06 13:15 GMT+02:00 Paul Gofman <gofmanp at gmail.com>:
>
>> @@ -6099,8 +6100,9 @@ static HRESULT d3dx9_parse_resource(struct d3dx9_base_effect *base, const char *
>> {
>> if (FAILED(hr = d3dx9_create_object(base, object)))
>> return hr;
>> - d3dx_create_param_eval(base, object->data, object->size, param->type,
>> - ¶m->param_eval, get_version_counter_ptr(base));
>> + if (FAILED(hr = d3dx_create_param_eval(base, object->data, object->size, param->type,
>> + ¶m->param_eval, get_version_counter_ptr(base))))
>> + return hr;
>> }
>> break;
>>
>> @@ -6138,8 +6140,11 @@ static HRESULT d3dx9_parse_resource(struct d3dx9_base_effect *base, const char *
> It looks like you missed another call to d3dx_create_param_eval() in
> between these two.
>
>
I did not exactly missed them, I was adding failure return for shader
constants evaluators only. Those ones missed are for FXLCs and array
selectors, which I left as is following our previous convention not to
deny effect creation if some parameter evaluator creation fails. Doing
this the same way probably makes more sense though. I will add an error
return to all parameter evaluator creation and rename the patch accordingly.
More information about the wine-devel
mailing list